我正在开发一个仪表板,我在Angular中有一堆模块和控制器。其中一个是处理侧边栏中显示的内容,例如不同URL或状态中的不同小部件。
我一直在使用ui-route作为框架(页眉,页脚,主要内容),但我不确定在显示或隐藏小部件时我是否在正确的轨道上。怎么能/应该这样做?
Here's a plunkr说明了我的两种方式 - ui.router
的状态和$rootScope.$broadcast
vs $scope.$on
,给出了我想要包含的文件列表。
有什么想法或想法吗?
答案 0 :(得分:1)
不要使用$ rootscope,这是一直不好的做法。
使用抽象状态作为其他状态的父级。然后,您可以简单地使用父控制器在加载时为其余页面提供状态条件,并在此之后使用简单的ng-if。
答案 1 :(得分:0)
在这种情况下,您使用的路由器基本上无关紧要。考虑到这是全局状态信息,$rootScope
可能是处理是否显示某些事物的最佳位置。我不认为$broadcast
是必要的,您可以直接从根范围分配和检查属性。
答案 2 :(得分:0)
$rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams){
$rootScope.currentState = toState.name;
});
比你可以在html中使用ng-if来隐藏和显示小部件。