[英]angularjs: access controller of directive
我正在對指令之一進行單元測試。 它的基本結構是這樣的
angular.module('MyApp')
.directive('barFoo', function () {
return {
restrict: 'E',
scope: {},
controller: function ($scope, $element) {
this.checkSomething = function() { .... }
},
link: function(scope, element) { .... }
}
});
在單元測試中,我想測試功能“ checkSomething”,因此我嘗試了
var element = $compile('<barFoo></barFoo>')(scope);
var controller = element.controller()
...
但是,控制器未定義。 是否可以訪問指令的控制器?
膠水是你的范圍,所以你可以做
controller: function ($scope, $element) {
this.checkSomething = function() { .... }
$scope.controller = this;
},
但是我認為最好將每個功能都附加到范圍
controller: function ($scope, $element) {
$scope.checkSomething = function() { .... }
},
然后它
var element = $compile('<barFoo></barFoo>')(scope);
var checksomthingResult = scope.checkSomething ()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.