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控制器繼承自另一控制器的相關知識,希望對大家有所幫助!