簡體   English   中英

在angularjs中注入依賴項的可維護方式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM