如何为angularjs中的每个控制器注入一个唯一的模块

时间:2015-02-09 00:58:57

标签: javascript angularjs module controller

与$ scope独立于每个控制器的方式相同。是否存在为每个控制器创建独立模块的方法?

angular.module('mymodule', []).service('mymodule', function () {});

angular.module('myapp', ['mymodule'])

.controller('myController2', function($scope, mymodule) {

    console.log(
      $scope.hello,   // undefined
      mymodule.hello, // "world"
      s === $scope,   // false
      m === mymodule  // true
    );

})

.controller('myController', function($scope, mymodule) {

    s = $scope;
    m = mymodule;
    $scope.hello = "world";
    mymodule.hello = "world";

});

http://jsbin.com/qazeju/2/edit?js,console

我尝试过工厂和供应商。

2 个答案:

答案 0 :(得分:0)

我不知道如何为每个控制器注入一个独立的实例,但您可以使用函数定义服务以创建实例并从每个控制器调用该函数。

angular.module('mymodule', []).service('mymodule', function () {
  return {
    createMyService: function(){
      return {
        hello: 'hello world'
      };
    }
  };
});

答案 1 :(得分:0)

为什么要在DI中使用单个模块?这有点棘手,但我认为这是可能的,使用assetBuilder并注入结果......