Javascript Angular.js ng if指令在控制器之间不更新
我有一个指令,它是根据绑定到侧面板主页中的对象属性显示的。和ng view指令,它根据散列路由加载不同的内容。它看起来像这样。根作用域位于标记上,是主控制器Javascript Angular.js ng if指令在控制器之间不更新,javascript,angularjs,Javascript,Angularjs,我有一个指令,它是根据绑定到侧面板主页中的对象属性显示的。和ng view指令,它根据散列路由加载不同的内容。它看起来像这样。根作用域位于标记上,是主控制器 <body ng-controller="Main"> <auth-panel ng-show="viewModel.panels.auth"></auth-panel> <ng-view></ng-view> </body> 当im在主页中时,此
<body ng-controller="Main">
<auth-panel ng-show="viewModel.panels.auth"></auth-panel>
<ng-view></ng-view>
</body>
当im在主页中时,此属性为false。
当我移动到下一页“PeoplePlaces”时,它使用ng if和truthy值显示。但由于某种原因,当我使用browsers back事件导航回时,我可以通过调试看到主控制器正在运行,并且该值设置为false,但是ng if指令不会更新,并且指令“auth panel”仍然显示,好像绑定不起作用一样
app.controller('Main',['$scope',function($scope){
$scope.viewModel = {
panels:{
auth:false
}
}]);
neura.controller('PeopleNPlaces',['$scope',function($scope){
$scope.viewModel.panels.auth = true;
});
指令看起来像这样
app.directive('authPanel',function(){
return {
templateUrl:'js/directives/authPanel.html',
restrict:'E',
scope:{
viewModel:'='
},
link:function($element,$attrs,$scope){
console.log();
},
controller:function($scope,$attrs){
console.log();
}
}
});
我过去经常使用ng if,我知道它应该绑定到值并动态隐藏和显示指令。
有没有人遇到过这个bug,或者我遗漏了什么?我会尝试使用类似于
<body ng-controller="Main">
<div ng-show="viewModel.panels.auth">
<auth-panel></auth-panel>
</div>
<ng-view></ng-view>
</body>
另外,为什么要在主体和路由提供程序中设置控制器?我会坚持使用路由提供程序,并将其从正文中删除。我在代码中的任何地方都看不到ng,你是说在auth面板上显示ng吗?我认为问题可能在于两个控制器的两个作用域相互独立。
<body ng-controller="Main">
<div ng-show="viewModel.panels.auth">
<auth-panel></auth-panel>
</div>
<ng-view></ng-view>
</body>