我正在使用Angular 1(v1.6.0)创建我的第一个单页应用,利用ng-hide
和ng-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
应用于任何非主页的路径。 但我仍然想知道如何在没有!==
的情况下完成此操作,以防我有三个不同的标题等等。