$ viewContentLoaded未触发

$viewContentLoaded永远不会在我的Angular控制器中触发。 下列:

 function MyController($scope) { $scope.$on('$viewContentLoaded', function() { alert("blah"); }); } 

永远不会遇到断点,也不会弹出警报。 我认为这是非常标准的用途,所以我不确定它可能是什么,但它肯定不会解雇。 控制器中的其他所有内容都表现正常。

什么会导致这个?

根据您上面的评论,听起来像你有这样的事情:

  

我不确定ng-view标签中的内容是什么,但是$viewContentLoaded是从ng-view范围发出的。 这意味着,它只会从ng-view上升,因此你的控制器永远不会捕获它。

试试这个:

  function MyController($scope) { $scope.$watch('$viewContentLoaded', function() { alert("blah"); }); } 

我通过在app.js路由提供程序中指定控制器而不是在视图中的div中使用ng-controller来解决这个问题。 如果我需要使用$ viewContentLoaded,我只使用此方法,否则我使用ng-controller。

 angular.module('myapp', [...]) .config(function ($routeProvider, $locationProvider) { $routeProvider .when('/MyRoute', {templateUrl: 'views/MyView.html', controller: MyController}) });