在Angular中加载多个模块或控制器无法正常工作

时间:2016-09-16 06:30:40

标签: javascript angularjs angularjs-scope angular-ui-router

我需要"导入"或"使用"一个模态服务和我当前的代码看起来像这样

angular
    .module("deviceManagement")
    .controller("DeviceDetailCtrl",
    ["$scope",
        "$http",
        "$stateParams",
        "deviceService",
        DeviceDetailCtrl]);

所以我知道有一个文件angularModalService.js,其中包含

var module = angular.module('angularModalService', []);
module.factory('ModalService', ...................

考虑到这些事情,我想"注入"这个" ModalService"进入我目前的代码,但它说" undefined"等。

在我目前的代码之上,我尝试了这两种设置另一个模块的方法,但我不确定我是应该设置模块还是控制器,或者两者兼而有之

  var app2 = angular.module('app2', ['angularModalService']);

或.. ..

angular
    .module("app2", ['angularModalService'])
    // .controller ??? 

1 个答案:

答案 0 :(得分:0)

杰里米,有一些事情要注意。

  1. 如果要将另一个模块用作模块的依赖项。您需要将其注入模块中。在您的情况下,您的代码将是。
  2. angular.module('app2', ['angularModalService']);

    请注意,它等同于

    var application2 = angular.module('app2', ['angularModalService']);
    

    不同的是,您可以通过两种方式配置您的模块。

    angular.module('app2').config(...)
    application2.config(...)
    
    1. 如果您想在app2中使用工厂ModalService,只需将其注入您的控制器即可。
    2. angular.module('app2').controller('SomeController', ['ModalService', function(ModalService) { //TODO }]);

      你似乎仍然对角度模块感到困惑。请阅读此article。引用

      var myModule = angular.module('myModule', []);
      
      // add some directives and services
      myModule.service('myService', ...);
      myModule.directive('myDirective', ...);
      
      // overwrites both myService and myDirective by creating a new module
      var myModule = angular.module('myModule', []);
      
      // throws an error because myOtherModule has yet to be defined
      var myModule = angular.module('myOtherModule');