gpt4 book ai didi

javascript - angularjs:指令的访问 Controller

转载 作者:行者123 更新时间:2023-11-30 05:41:29 26 4
gpt4 key购买 nike

我正在对我的一个指令进行单元测试。它的基本结构是这样的

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 是未定义的。是否可以访问指令的 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 ()

关于javascript - angularjs:指令的访问 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20607029/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com