angularjs - 为什么 $routeChangeSuccess 永远不会被调用?

标签 angularjs angular-ui angular-ui-router

我正在我的应用程序上执行类似于下面的操作,但我无法获得 routeChangeSuccess 事件。

var myapp = angular.module('myapp', ["ui.router", "ngRoute"]);

myapp.controller("home.RootController",
  function($rootScope, $scope, $location, $route) {
    $scope.menus = [{ 'name': 'Home ', 'link': '#/home'}, {'name': 'services', 'link': '#/services'} ]

    $scope.$on('$routeChangeSuccess', function(event, current) {

      alert('route changed');
    });

  }
);

myapp.config(
  function($stateProvider, $urlRouterProvider, $routeProvider) {
    $urlRouterProvider.otherwise("/home");
    $stateProvider
      .state('home', {
        url: "/home",
        //template: '<h1>Home Screen</h1>'
        templateUrl: "/Client/Views/Home/Home.htm"
      })
      .state('services', {
        url: "/services",
        //template: '<h1>Service screen</h1>'
        templateUrl: "/Client/Views/Home/service.htm"

      });
  });

下面的一个非常简单的html也失败了
  <body ng-controller="home.RootController">

    <ul class="nav">
      <li ng-repeat="menu in menus" "="">
        <a href="{{menu.link}}">{{menu.name}}</a>
      </li>
    </ul>
    <div ui-view> No data yet!</div>
  </body>

但是当我单击链接时,我看到 View 正在更新,但从未触发 $routeChangeSucces 事件。

有什么我想念的吗?

另一个问题我有一个事件,我可以知道 View 已经准备好,这样我就可以开始一些额外的处理,比如 document.ready()。

plnlr但没有完全工作......

问候
基兰

最佳答案

stateChange事件现已弃用并删除,请使用 transitions反而。

$transitions.onSuccess({}, function () {
    console.log("state changed");
});

关于angularjs - 为什么 $routeChangeSuccess 永远不会被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20454400/

相关文章:

javascript - View 中的 ng-click 表达式设置 $scope.var 的值

javascript - 防止为 angularjs 页面运行表单验证

javascript - 没有 jquery 的 Angular $animate.addClass 回调

javascript - AngularJS ui模式传递数据

angularjs - 我需要安装哪些插件才能在 IDEA 中获得 WebStorm 功能?

angularjs - AngularJS 1.2 ng-show高度动画

javascript - UI-Router 抽象状态子级不渲染

javascript - 检查用户电子邮件和密码

javascript - UI-Router 的 Angular Service 异步单例

javascript - Angular UI-Router 在子状态下覆盖解析