我有一个函数来确定是否应该在页面上显示标题。角度控制器如下:
angular.module('blahblah').controller('blahblahController', [
'$location',
function blahblahController($location) {
'use strict';
this.shouldShow = function () {
return $location.url() !== '/homepage';
};
}
]);
像这样,除了主页之外,该函数将在每个页面中评估为true,因此ng-if="$ctrl.shouldShow()"
将在页面上显示该元素。
我的问题是我希望在除主页和'/error'
页面之外的每个页面中评估为true的函数。
我尝试将'/homepage'
替换为'/homepage' || '/error'
,并将其置于括号之间,但它不起作用。
帮助将不胜感激!
答案 0 :(得分:1)
this.shouldShow = function () {
return !($location.url() === '/homepage' || $location.url() === '/error');
};
检查网址是否等于主页或错误并取消它。对于除主页和错误页面之外的所有页面,这将返回true。
答案 1 :(得分:-1)
您需要进行两次比较:
this.shouldShow = function () {
let path = $location.path();
return path !== '/homepage' || path !== '/error';
};
答案 2 :(得分:-1)
Angular控制器需要注入$ scope,以便将任何属性附加到$ scope对象。在控制器中,您希望模板中可用的任何属性都需要以$ scope作为前缀。 例如
$scope.shouldShow = function () {
return $location.url() !== '/homepage';
};
在您的模板中,您将使用:ng-if=shouldShow()
有关详细信息,请参阅https://docs.angularjs.org/guide/controller。
您在模板中使用ng-if="$ctrl.shouldShow()"
。 AngularJS组件默认controllerAs使用$ ctrl。有关详细信息,请参阅https://docs.angularjs.org/guide/component。