我在我的应用程序上做类似于以下的操作,但是我不能得到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.提取:
原文链接:https://www.f2er.com/angularjs/144329.html> $ stateChangeSuccess – 状态转换完成后触发。
$范围。在$( ‘$ stateChangeSuccess’,
function(event,toState,toParams,fromState,fromParams){…})
所以代替$ routeChangeSuccess使用$ stateChangeSuccess。
要获得有关所有可用事件的更多详细信息,请查看维基Events.这里可以找到适合您的,可以是event $ viewContentLoaded …