angularjs裡控制器繼承,常用的就是作用域巢狀作用域。預設情況下,目前作用域中無法找到某個屬性時,就會在父級作用域中進行查找,若找不到直到查找到$rootscope。
但有些情況下,rootscope下就是我們的controller,不可能將大量的公用屬性方法寫到rootscope裡去。
比如說有多個類似的頁面,都有麵包屑,搜尋欄,工具欄,表格等元素,麵包屑表格這種元素考慮做成directive,那麼必然會有許多類似的配置需要從controller傳到元件裡去,也會產生很多工具類別方法用來處理資料等,這時候在每個頁面的controller裡重複寫相同的程式碼顯然很難看,就需要用到繼承。
在stackoverflow上找到了解決方案,原來angularjs已經考慮到這種情況了,提供了$controller
var app = angular.module('angularjs-starter', []); app.controller('ParentCtrl ', function($scope) { // I'm the sibling, but want to act as parent }); app.controller('ChildCtrl', function($scope, $controller) { $controller('ParentCtrl', {$scope: $scope}); //This works });
以上所述是小編給大家介紹的angularjs控制器繼承自另一控制器的相關知識,希望對大家有幫助!