整个应用程序中可用的功能
请注意,这种方法可能被认为是角度应用程序的糟糕设计,因为它要求程序员记住范围树中放置函数的位置,以及了解范围继承。在许多情况下,最好注入一个服务( Angular 实践 - 使用范围继承与注入 。
此示例仅显示范围继承如何用于我们的需求,以及如何利用它,而不是设计整个应用程序的最佳实践。
在某些情况下,我们可以利用范围继承,并将函数设置为 rootScope 的属性。这样 - 应用程序中的所有范围(隔离范围除外)都将继承此功能,并且可以从应用程序的任何位置调用它。
angular.module('app', [])
.run(['$rootScope', function($rootScope){
var messages = []
$rootScope.addMessage = function(msg){
messages.push(msg);
}
}]);
<div ng-app="app">
<a ng-click="addMessage('hello world!')">it could be accsessed from here</a>
<div ng-include="inner.html"></div>
</div>
inner.html:
<div>
<button ng-click="addMessage('page')">and from here to!</button>
</div>