使body类成为页面的url而没有第一个正斜杠

时间:2013-04-29 13:56:53

标签: angularjs

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

2 个答案:

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

  });