从UI-Router使用$ stateChangeSuccess事件时无法添加或删除body类

时间:2016-08-20 13:55:25

标签: javascript angularjs angular-ui-router

这个问题花了我一周的时间来排除故障!我找不到答案。所以我会和你们分享。

以下是代码。如果单击“登录/ home状态”,则课程test将适用于正文而没有任何问题。

BUT。如果我将Socher et al.粘贴到浏览器中,它根本不起作用!

angular.module('app').config(function($stateProvider) {

$stateProvider
  .state('home', {
    url: '/home'
  }).state('login', {
    url: '/login'
  });

}).run(function($rootScope) {

  $rootScope.$on('$stateChangeSuccess', function () {
    var bodyElem = angular.element(document.body);
    bodyElem.addClass('test');
  });

});

1 个答案:

答案 0 :(得分:0)

完全调试和跟踪后。我发现了原因。只需使用$viewContentLoaded代替$stateChangeSuccess

即可

现在代码按预期工作

$rootScope.$on('$viewContentLoaded', function () {
  var bodyElem = angular.element(document.body);
  bodyElem.addClass('test');
});