【发布时间】:2014-06-02 04:20:55
【问题描述】:
有没有办法从控制器的定义中获取对当前实例化控制器对象的引用?我想$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);
}
});
【问题讨论】:
-
控制器是用
ng-controller指令在dom中定义的,所以它不会在$route下,很遗憾 -
您是否尝试过使用“this”我不确定它是否会起作用,但值得一试。
-
是的,
this是一个 $scope 对象 -
openModal函数之前的console.log(this)怎么样
-
其实控制器定义中的
this就是实例化的控制器!不知道为什么我以前没有想到这一点。结案。将在上面编辑我的帖子
标签: javascript angularjs controller self-reference lexical-scope