有没有办法从控制器的定义中引用当前实例化的控制器对象?我想$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);
}
});
答案 0 :(得分: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);
}
});