[英]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.