我正在使用的模塊目前是另一個模塊的複製粘貼代碼。顯然這是不對的,所以我試圖包含共享資源(一個模塊)來消除這種冗餘。Angular - 如何在模塊之間共享控制器?
這裏是設置的草圖:
angular.module('shared', []);
angular.module('shared').controller('SharedController', SharedControllerFunc);
function SharedControllerFunc(/*params*/) {
/*logic*/
}
angular.module('app', ['shared']);
angular.module('app').controller('myController', myControllerFunc);
console.log(angular.module('app').controller('SharedController'));
//looks good!
//HTML template
<div ng-controller="myController">
<div ng-controller="SharedController" ng-include="other-template.html"></div>
</div>
而且SharedController不存在。
我的問題是:我如何獲取SharedController
正確解決?我嘗試使用$controller
服務,並在MyController
的範圍內創建SharedController
,但它看起來像,因爲它與傳遞依賴關係有關(Unknown provider
錯誤SharedController
)。
必須有一個乾淨,簡單的方法來做到這一點,我忽略了。
如果您註釋掉將控制器重新定義爲null的'console.log',則可以正常工作。請參閱[JSFiddle上的DEMO](https://jsfiddle.net/efae1hey/)。 – georgeawg