角度阻止ng-view外的可见性

时间:2015-01-26 15:48:26

标签: javascript angularjs ng-view

我的应用程序中有ng-view和差不多40个控制器,我有两个按钮块,其中一个块我只显示在主页面上,第二个块显示在休息页面上(我简化了按钮块两个按钮)例)。而且在某些页面上我根本不需要那些按钮。

 <div id="body">
     <div id="header" ng-if="!hideHeader">
         <button class="button" ng-if="mainPage"/>
         <button class="button" ng-if="!mainPage"/>
     </div>
     <div ng-view=""/>
 <div>

这些按钮属于$ rootScope,元素可见或隐藏取决于根范围变量。我已经在根范围上创建了监听器,每次路由更改时都会调用该监听器。但是在那种情况下,我看到在ng-view改变了视图之前,当另一个按钮块上的一个按钮块被更改时,什么是烦人的。

$rootScope.$on('$routeChangeStart', function(next, current) {
    $rootScope.hideHeader = true;
});

第二种解决方案是在控制器中设置hideHeader变量。但在这种情况下,我需要在每个控制器中设置这个变量。在这种情况下,解决方案将难以支持。例如,我将添加另一个只想在一个页面中显示的按钮块,这意味着我需要重写所有控制器。

最佳解决方案是什么?

0 个答案:

没有答案