[英]maintainable way of injecting dependencies in angularjs
我想知道如何以更具可讀性的方式在angular中注入依賴項。 我對AMD(requirejs)方式更感興趣。 如下所示:
define(function (require) {
var ModuleOne = require("ModuleOne"),
ModuleTwo = require("ModuleTwo");
var ThisModule = (function () {
// code here
})();
return ThisModule;
});
是否可以在angularjs中以高於上述方式的方式注入依賴項,或者有沒有比angularjs中當前方式更好的方法?
從Angular JS 官方網站
Angular模塊解決了從應用程序中刪除全局狀態的問題,並提供了一種配置注射器的方法。 與AMD或require.js模塊相對,Angular模塊不會嘗試解決腳本加載順序或延遲腳本提取的問題 。 這些目標是正交的,並且兩個模塊系統都可以並存並實現其目標。
因此,這兩個庫(RequireJS和AngularJS)的用途完全不同。 AngularJS內置的依賴注入系統處理組件中所需的對象 ; 而RequireJS中的依賴項管理則處理模塊或JavaScript文件 。
在requireJS中,將緩存已加載模塊的對象,並在再次請求相同模塊時為它們提供服務。 另一方面,AngularJS維護一個帶有名稱和對應對象列表的注入器。 在這種情況下,只要使用注冊名稱引用對象,就為該對象提供服務。
通常我們將依賴注入到angularJS中
someModule.controller('MyController', function($scope,greeter){
});
如果您想以其他方式在angularJS中注入依賴項,則可以執行類似的操作。
var MyController = function($scope, greeter) {
// ...
}
MyController.$inject = ['$scope', 'greeter'];
someModule.controller('MyController', MyController);
希望能幫助到你!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.