【发布时间】:2015-03-27 11:56:35
【问题描述】:
我在这里遇到了一种情况,我的网站是用 angularjs 构建的。我的整个路线都是通过角度管理的。成功登录后,我将用户重定向到仪表板页面。我在一个元素上有一个显示隐藏条件,现在停止工作。代码如下:
<div id="TilesController" ng-show="ShowTiles" ng-controller="TilesController">
<div class="" id="tiles" ng-include src="'tiles.html'"></div>
</div>
所以图块只对登录用户可见。登录后,瓷砖应该是可见的,我监听 routechangesuccess 事件并根据它进行更改,但它不起作用。
$scope.$on('$routeChangeSuccess', function(event, next, current) {
if(userLoggedIn !== undefined){
$scope.ShowTiles = true;
}
});
但这并没有启用磁贴,但如果我 console.log($scope.ShowTiles); 它显示为 true。我尝试了 safeapply,但仍然没有帮助,但如果我刷新整个页面,它就会起作用。
【问题讨论】:
-
您可能没有更新正确的范围。这个事件处理代码是在哪里定义的?
-
离题:您应该使用
ng-if而不是ng-show,因为这不会渲染图块。否则,它们只是隐藏起来,用户可以轻松启用它们。 -
你有这方面的 plnkr/fiddle 吗?
标签: angularjs angularjs-ng-show