2

有没有办法从控制器的定义中获取对当前实例化的控制器对象的引用?我想要$compile一个模态并将其绑定到创建模态的同一个控制器。

这是我想做的简化版本,其中THIS_CONTROLLER_INSTANCE是对我的控制器实例的引用。

angular.module('foo')
.controller('barController', function($scope, $rootScope){
  $scope.openModal = function(){
    var modalEl = $('<div class="modal">Modal stuff here</div>');
    var controller = THIS_CONTROLLER_INSTANCE;
    modalEl.contents().data('$ngControllerController', THIS_CONTROLLER_INSTANCE);

    $compile(modalEl)($scope);
    $('body').append(modalEl);
  }
});
4

1 回答 1

0

如上所述:

当前控制器为this. 所以我的问题的解决方案是:

angular.module('foo')
.controller('barController', function($scope, $rootScope){
  var self = this;
  $scope.openModal = function(){
    var modalEl = $('<div class="modal">Modal stuff here</div>');
    var controller = self;
    modalEl.contents().data('$ngControllerController', controller);

    $compile(modalEl)($scope);
    $('body').append(modalEl);
  }
});
于 2016-11-09T18:15:50.163 回答