Angularjs - 在同一$ rootScope布尔

时间:2016-12-20 00:15:54

标签: angularjs scope controller routes rootscope

我正在使用Angular 1(v1.6.0)创建我的第一个单页应用,利用ng-hideng-show来隐藏或显示不同的标题元素(我的主页中有一个视差英雄形象标题 - 我的其他页面没有。)

对于我的控制器routeController,我只能为每$location.path()分配一个$rootScope.showPortfolioHeader

app.controller('routeController', ['$rootScope', '$location', function($rootScope, $location) {
    $rootScope.showPortfolioHeader = $location.path() === '/jcRealty';
}]); 

我尝试了两种方法将多个路径分配给同一个$rootScope.showPortfolioHeader布尔值,这两个路径都失败了:

尝试#1

app.controller('routeController', ['$rootScope', '$location', function($rootScope, $location) {
    $rootScope.showPortfolioHeader = $location.path() === ('/jcRealty' || '/randomQuoteGenerator');
}]); 

尝试#2

app.controller('routeController', ['$rootScope', '$location', function($rootScope, $location) {
    $rootScope.showPortfolioHeader = $location.path() === '/jcRealty';
}]);

app.controller('routeController', ['$rootScope', '$location', function($rootScope, $location) {
    $rootScope.showPortfolioHeader = $location.path() === '/randomQuoteGenerator';
}]);

这两次尝试都导致布尔值仅应用于$location.path()中的一个。然后我意识到在这种情况下,我可以完成我想要的东西:

app.controller('routeController', ['$rootScope', '$location', function($rootScope, $location) {
            $rootScope.showPortfolioHeader = $location.path() !== '/';
    }]);

$rootscope.showPortfolioHeader应用于任何非主页的路径。 但我仍然想知道如何在没有!==的情况下完成此操作,以防我有三个不同的标题等等。

0 个答案:

没有答案