0

每次导航更改页面时,我都无法让 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>

那里有任何铁杆Angulars吗?请帮忙。

J.P

4

2 回答 2

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);

  });
于 2013-04-29T15:56:32.993 回答
0

做一些不同的事情:

我不认为该函数实际上被调用了,所以:

$scope.currentPage = getCurrentPage();
$scope.currentPage += "Page"; // just keeping the concatenation out of the markup

编辑:我认为我对上述说法是错误的。在这种情况下,我仍然不清楚何时调用()与引用函数......

此外,这条线需要对操作符进行一些修饰:

if (url == null || url === undefined);

而且,我不确定在这种情况下 ng-class 是否完全必要。它通常用于评估表达式。我会简单地使用:

<div class="" ng-controller="AppCtrl" class="{{currentPage}}"></div>

希望其他人可以在所有这些方面验证我,因为我对 JS 和 AngularJS 还很陌生。

于 2013-04-29T14:42:42.120 回答