我想像这样以角度定义页面标题:
一个标准PageController
:
angular.module('admin').controller('AdminController',
function($scope) {
// emit an event to rootscope
$scope.$emit('setPageTitle','Administration');
}
);
然后在运行块中:
angular.module('core').run(function($rootScope){
$rootScope.$on('setPageTitle',function(evt,title){
$rootScope.$broadcast('setPageTitle',title); // The error is thrown from this line
});
});
最后在PageHeaderController
:
angular.module('core').controller('PageHeaderController',
function($scope) {
$scope.$on('setPageTitle',function(evt, title){
$scope.pageTitle = title;
});
}
);
这样,我不需要注入$rootScope
each PageController
,但这$scope
通常用于其他任务。
但是我在第二个代码块中上面标记的行处收到此错误
RangeError:超出最大调用堆栈大小
这里有什么问题?我看不出是什么导致了无限循环,因为我想我只是做了这些步骤:
- 从孩子发出
- 在 rootscope 中处理并广播给孩子
- 处理特定的孩子