gpt4 book ai didi

javascript - AngularJS Controller 的问题

转载 作者:行者123 更新时间:2023-11-27 23:27:05 26 4
gpt4 key购买 nike

我的 html 文件中有以下设置:

<body>
<nav ng-controller="loginCtrl">
<div>
<li>Apple</li>
<li>Mango</li>
<li>{{user}}</li>
</div>
</nav>

<div ui-view></div>

</body>

我有一个导航菜单和显示不同页面的 ui-view

我还有一个 Controller loginCtrl,它有一个名为 $scope.user 的范围变量。此 Controller 也在 login.html 文件的 UI 状态路由器中调用,以便登录表单可以使用其方法。

当用户登录时,我想使用上面的 {{user}} 在导航菜单中显示他的名字。无论将在 ui-view 中加载的其他部分页面如何,您所看到的导航菜单都是可见的(静态的)。

目前,它不起作用,我不知道为什么。

我的理解是 login.html 中的登录表单和导航菜单位于不同的文件中,因此它们可能使用相同的 Controller (在同一模块下)但可能在不同的范围/环境中运行(am不太确定)。

这就是为什么我更新了 $scope.user 的值但它没有出现在导航菜单中的原因。

为什么它不起作用,我该如何实现我的功能?

最佳答案

使用单例服务共享相同的 UserData 对象:

app.service('UserData', function(){return {name: 'default'};});
app.controller('LoginController', function($scope, UserData){
$scope.user = UserData;
});

现在,所有 Controller 实例都可以访问相同的 UserData 对象。
user.name 发生变化时,所有 Controller 都可以看到它。

关于javascript - AngularJS Controller 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37861599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com