每次导航更改页面时,我都无法让Angular将页面的URL吐出到页面类中。这就是我到目前为止所做的:
$scope.currentPage = getCurrentPage;
var getCurrentPage = function () {
var login = 'login';
var url = $location.url().substring(1);
if (url = null || url = undefined) {
return login;
} else {
return url;
}
};
我在内容包装<div>
上有这个:
<div class="" ng-controller="AppCtrl" ng-class="currentPage + 'Page'"></div>
那里有任何铁杆角吗?请帮忙。
JP
答案 0 :(得分:0)
要做的一些事情不同:
我认为该功能实际上并未被调用,所以:
$scope.currentPage = getCurrentPage();
$scope.currentPage += "Page"; // just keeping the concatenation out of the markup
编辑:我认为上述陈述我错了。我仍然很模糊何时调用()vs在这样的情况下引用函数...
此外,此行还需要对运算符进行一些修饰:
if (url == null || url === undefined);
并且,我不确定在这种情况下ng-class是完全必要的。它通常用于评估表达式。我只想使用:
<div class="" ng-controller="AppCtrl" class="{{currentPage}}"></div>
希望其他人可以在所有这些方面验证我,因为我对JS和AngularJS相当新。
答案 1 :(得分:0)
对于任何遇到这种情况并希望得到更详细答案的人,请你走了!
在视图中:
<div class="" ng-controller="AppCtrl" class="currentPage"></div>
在控制器中:
$scope.$watch(function () {return $location.url();}, function () {
var getCurrentPage = function () {
var login = 'loginPage';
var currentUrl = $location.url().substring(1);
if (currentUrl === '' || currentUrl === undefined) {
return login;
} else {
return currentUrl + 'Page';
}
};
$scope.currentPage = getCurrentPage();
console.log($scope.currentPage);
});