我正在我的应用程序上执行以下操作,但是我无法获取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但不能完全正常工作…
问候基兰
请检查此Wiki:状态更改事件。摘录:
$ scope。$ on(’$ stateChangeSuccess’, function(event,toState,toParams,fromState,fromParams){…})
因此,而不是$routeChangeSuccess使用$stateChangeSuccess。
$routeChangeSuccess
$stateChangeSuccess
要获取有关所有可用事件的更多详细信息,请查看Wiki Events。 在这里,您会发现最适合您的活动可能是$viewContentLoaded…
$viewContentLoaded