执行第二个控制器"这个"在第一控制器通过角度服务

时间:2016-10-05 07:56:18

标签: javascript angularjs

我有两个控制器和一个服务,我正在执行第一个控制器" self / this"在第二个控制器中。我想知道这是一个反模式还是有任何内存泄漏的可能性?

自助服务 - 此服务存储"此" selfContainer对象中的控制器。

setSelf方法有两个参数 - this / self控制器的名称和this / self本身。 - 它将它们存储为selfContainer对象中的键值对。

executeWithSelf方法还有两个参数 - this / self的名称和回调。使用this / self作为参数执行回调。

angular.module('app')
.factory('SelfService', function () {
  var selfContainer = {};
  function setSelf (selfname , self) {
    selfContainer[selfname] = self;
  }
  function executeWithSelf (selfname, callback) {
    callback(selfContainer[selfname]);
  }
return {
    setSelf: setSelf,
    executeWithSelf: executeWithSelf
  };
});

FirstController

angular.module('app').controller('FirstController', function(QueryService){
  var self = this;
  self.counter = 0;
  QueryService.setSelf('FirstController', self);
})

第二控制器

angular.module('app').controller('SecondController', function(QueryService){
  var self = this;
//execute QueryService.executeWithSelf on any event and only after first controller has loaded
  QueryService.executeWithSelf('FirstController', function(firstcontrollerself){
    firstcontrollerself.counter++;
  });
})

0 个答案:

没有答案