是否应将所有第三方依赖项注入angular.module?

时间:2015-01-05 18:06:34

标签: angularjs dependency-injection

让我们说我使用Angular UI和只有一个指令的第三方库。即使一个显然比另一个大得多,它们在angular.module的依赖部分下是否都得到相同的计费?或者我可以简单地将较小的依赖项注入我需要使用它的控制器中吗?

exampleapp.js

angular.module('myApp', [
  'angular-ui',
  'thirdpartylib'
  ]);

仅在需要时注入库的最佳做法是什么?

2 个答案:

答案 0 :(得分:0)

我将我的应用程序分成不同的模块:

angular.module("App.controllers", []);
angular.module("App.services", ["ngResource"]);
angular.module("App.directives", []);
angular.module("App.filters", []);
angular.module("App.constants", []);
angular.module("App", [
    "ngRoute",
    "App.services",
    "App.directives",
    "App.filters",
    "App.controllers",
    "App.constants"
]);

由于ngResource仅用于App.services模块,因此无需在整个应用程序中插入它。

当我需要创建一个控制器时,我只是这样做:

angular.module("App.controllers").controller("NewController",["$scope", function($scope){


}]);

为了简单起见,我会在应用程序中添加模块"子模块"(当您第一次创建模块时,就像我在App.services中那样),这样您就可以保持代码清洁。如果您不能使用该模块,则无需在其他地方注入该模块。

结帐ngBoilerplate

答案 1 :(得分:0)

如果您正在使用延迟加载,则必须在脚本加载到页面时注入到控制器,指令,服务等。否则,在应用程序定义中注入没有任何不便。它在调用时不会运行。