Angular $ locationProvider不改变.url()

时间:2014-04-23 20:26:45

标签: javascript angularjs

目标:我正在尝试将$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"] {}等来设置样式。

1 个答案:

答案 0 :(得分:1)

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

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