gpt4 book ai didi

javascript - 隔离范围指令导致 karma 错误

转载 作者:行者123 更新时间:2023-11-30 00:15:41 25 4
gpt4 key购买 nike

我有一个带有隔离范围的指令,我在其中传递了一个绑定(bind)属性
“=”:

.directive('drawCircle',function (){
return {
restrict:'A',
replace:false,
scope:{
point:'=',
},
template:' <circle '+
'ng-attr-cx="{{point[0]}}" ng-attr-cy="{{point[1]}}" '+
'r="3" fill="purple" />'
};
});

我用它:

 <g draw-circle point="[22,33]">

它在浏览器中运行良好,但 karma 抛出:

Error: [$compile:multidir] Multiple directives [drawCircle (module: myApp), drawCircle (module: myApp)]
asking for new/isolated scope on: <g draw-circle="" point="p">

这是导致错误的单元测试:

 describe('directives testing', function() {
var element, scope, compiled;

beforeEach(module('draw.path'));

describe('draw-single-point directive',function(){
beforeEach(inject(function($rootScope,$compile){

scope = $rootScope.$new();
element = angular.element('<g draw-circle point="p" ></g>');
compiled = $compile(element);
scope.p=[110,11];
compiled(scope);

scope.$digest();
}));


});

为什么 Karma 会提示?

最佳答案

这可能是您面临的问题

你的指令 drawCircle 被定义/加载了两次,这就是如果发生这种情况你会得到的确切错误 - 检查笔:http://codepen.io/maurycyg/pen/pgWyEy?editors=101

我没有看到您的测试代码或指令有任何问题,甚至没有看到将指令与 ng-repeat 一起使用,所以我建议检查 KARMA 配置,也许您加载指令两次

关于javascript - 隔离范围指令导致 karma 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34809647/

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