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

前端之家收集整理的这篇文章主要介绍了angularjs – 为什么$routeChangeSuccess永远不会被调用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的应用程序上做类似于以下的操作,但是我不能得到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>

但是当我点击链接时,我看到视图正在更新,但$ routeChangeSucces事件永远不会被触发。

有没有我失踪的东西?

另一个问题是有一个事件,我可以钩住,以了解视图已经准备就绪,所以我可以开始一些额外的处理,如document.ready()。

plnlr但不完全工作…

问候
基兰

请检查此维基: State Change Events.提取

> $ stateChangeSuccess – 状态转换完成后触发。

$范围。在$( ‘$ stateChangeSuccess’,
function(event,toState,toParams,fromState,fromParams){…})

所以代替$ routeChangeSuccess使用$ stateChangeSuccess。

要获得有关所有可用事件的更多详细信息,请查看维基Events.这里可以找到适合您的,可以是event $ viewContentLoaded …

原文链接:https://www.f2er.com/angularjs/144329.html

猜你在找的Angularjs相关文章