如果我使用ng-controller将控制器添加到DOM元素,那么存储的结果控制器实例在哪里?
是否添加为DOM元素的属性?
答案 0 :(得分:3)
是的,它们存储在DOM元素上。 AngularJS使用the element API (aka JqLite)的data()
方法来存储控制器。
myApp.directive('myDirective', function() {
return {
link: function(scope,element) {
scope.name = element.data('$ngControllerController').test();
}
}
});
function MyCtrl($scope) {
this.test = function() {
return "world";
}
}
是的,您也可以使用
访问它angular.element('...').controller()
但是你不需要Batarang。它是the element API的一部分。这是获取访问权限的首选方式(或者您可以使用require
属性创建指令)。
element.data('$scope')