AngularJS viewContentLoaded在使用指令时不在页面刷新和初始加载时执行

时间:2014-03-03 22:02:33

标签: angularjs angularjs-directive angularjs-scope angularjs-routing

使用自定义指令并依赖viewContentLoaded事件运行时,我遇到了一些不一致...

以下是问题的“简单”版本:

var myApp = angular.module('myApp',[]);

myApp.directive('someDirective', function() {
   return {
     restrict: 'E',
     scope: {},
     controller: 'MyCtrl',
     templateUrl: 'my-template.html'
});


myApp.controller('MyCtrl', ['$scope', function($scope) {
  $scope.$on('$viewContentLoaded', function() {
      alert('Consumed viewContentLoaded...');
  }
}]);

事件viewContentLoaded get在页面刷新和初始页面加载时触发 像这样使用:

<div ng-controller="MyCtrl" ng-include="my-template.html"></div>

但是,当用作页面刷新或初始页面加载时,它不会被触发 指令:

<some-directive></some-directive>

任何想法为什么会出现不一致的行为?

1 个答案:

答案 0 :(得分:0)

我认为这个问题与一个开放的bug有关:

https://github.com/angular/angular.js/issues/1213

实际上没有解决这个问题。

建议的解决方法:

myApp.run(['$route', angular.noop]); 
使用最新的AngularJs(1.2.10)时,

失败,出现某种“注射器错误”。