整个应用程序中可用的功能

请注意,这种方法可能被认为是角度应用程序的糟糕设计,因为它要求程序员记住范围树中放置函数的位置,以及了解范围继承。在许多情况下,最好注入一个服务( 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>