也许使用2路绑定$watch
对我来说仍然不是很清楚..但我期待这段代码应该可以工作!
我的index.html页面中有一个topNavbar指令。如果用户未登录,topNavbar 应该显示 loginButton,否则如果他已经登录,则显示loginButton 。
所以我ng-switch
在topNavbar中有一个,查看CurrentUserService的isLogged属性。我想这有点像。$watch(CurrentUserService.isLogged)
但是,当我更改CurrentUserService.isLogged
为时true
,ng-switch
不会立即更新。它会在我的任何操作后更新,例如单击按钮或更改视图。为什么它没有按我的预期工作?
这是我的代码:
索引.html
<html lang="it" xmlns:ng="http://angularjs.org" ng-app="epoiApp">
...
<body style="overflow-y: auto;">
...
<top-navbar></top-navbar>
...
</body>
</html>
指令模板 topNavbar
<div ng-switch on="navbarCtrl.isLogged()">
<div ng-switch-when="false">
<login-button></login-button>
</div>
<div ng-switch-when="true">
<loggedin-button></loggedin-button>
</div>
</div>
控制器导航栏Ctrl
controller:function(CurrentUserService)
{
this.isLogged = function()
{return CurrentUserService.isLogged();}
}
当前用户服务
.service('CurrentUserService', function ()
{
// initialization
_islogged = false;
this.isLogged = function()
{ return _islogged; };
}
谢谢你