整個應用程式中可用的功能
請注意,這種方法可能被認為是角度應用程式的糟糕設計,因為它要求程式設計師記住範圍樹中放置函式的位置,以及瞭解範圍繼承。在許多情況下,最好注入一個服務( 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>