【问题标题】:Angular $locationProvider not changing .url()Angular $locationProvider 没有改变 .url()
【发布时间】:2014-04-24 04:50:21
【问题描述】:

目标: 我正在尝试将$location.url() 的值添加为我的<body> 标记的属性,以添加特定于页面的样式。当路线改变时,它应该会自动改变。

预期行为:

  • 当你第一次登陆页面时,路由被传递给<body>
  • 当路由改变时,新路由被传递给<body>

观察到的行为:

  • 第一次登陆页面时,路由成功传递到<body>
  • 当路由改变时,<body>中的路由保持不变

JS

app.controller('MainController', ['$scope', 'appData', '$location', '$rootScope', function ($scope, appData, $location, $rootScope) {

$scope.location = $location.url();

// Unrelated code follows...

HTML

<body data-page="{{ location }}" ng-controller="MainController">

现在我希望能够使用[data-page="/login"] {} 等设置样式。

【问题讨论】:

  • 我不确定这个问题是否具有足够的描述性...如果我应该创建一个 Plunker 来更好地说明我的问题,请告诉我
  • 它与我正在寻找的相似,但不是我想要的。我想根据传递的路由来做,不一定是硬编码的类名。否则,我只会在每个控制器中执行$scope.className = 'whatever-class'

标签: javascript angularjs


【解决方案1】:

我建议查看$routeChangeSuccess 事件。在这里您可以每次更新您的位置。

$rootScope.$on('$routeChangeSuccess', function(event, current, previous) {
    $rootScope.location = $location.url();
});

【讨论】:

  • 繁荣完美。我一直在玩$routeChangeSuccess,但它没有点击。我没有将参数放在function() 中,因为它们没有被使用。
猜你喜欢
  • 1970-01-01
  • 2016-04-03
  • 2014-06-18
  • 1970-01-01
  • 1970-01-01
  • 2022-06-14
  • 1970-01-01
  • 2011-12-30
  • 1970-01-01
相关资源
最近更新 更多