Angularjs 测试一个不符合要求的指令;没有模板或模板URL。无法访问html元素
我正在尝试测试我的指令。它无法访问该指令生成的html并打印空对象。我测试该指令的代码如下 更新:在通过karma进行调试时,我注意到我只能访问“it块”中的顶级元素。其中的.children()或.html()始终会生成“[[object HTMLSpanElement],[object htmldevelement]”Angularjs 测试一个不符合要求的指令;没有模板或模板URL。无法访问html元素,angularjs,angularjs-directive,jasmine,karma-runner,angular-mock,Angularjs,Angularjs Directive,Jasmine,Karma Runner,Angular Mock,我正在尝试测试我的指令。它无法访问该指令生成的html并打印空对象。我测试该指令的代码如下 更新:在通过karma进行调试时,我注意到我只能访问“it块”中的顶级元素。其中的.children()或.html()始终会生成“[[object HTMLSpanElement],[object htmldevelement]” var-elm、范围、元素; beforeach(注入(函数($rootScope,$compile){ elm=角元素( ''); scope=$rootScope;
var-elm、范围、元素;
beforeach(注入(函数($rootScope,$compile){
elm=角元素(
'');
scope=$rootScope;
scope.mockTree={
id:“test1”,
文本:“test1”,
儿童:[
{
id:“test1.1”,
文本:“test1.1”,
儿童:[
{
id:“test1.1.1”,
文本:“test1.1.1”,
儿童:[]
},
{
id:“test1.1.2”,
文本:“test1.1.2”,
儿童:[]
},
{
id:“test1.1.3”,
文本:“test1.1.3”,
儿童:[]
}
]
}
]
};
scope.mockSelected=“test1”;
scope.mockClick=jasmine.createSpy();
元素=$compile(elm)(范围);
$rootScope.$digest();
}));
它('说你好',函数(){
var b=angular.element(document.querySelector('.fk-tree-element');
调试器;
log(b.html());
});
有人能告诉我哪里出错了吗?您正在按元素的类选择元素,
.fk tree element
,但我看不出您将类分配给元素的位置。这就是问题所在吗?你能看看JS小提琴吗。您可以在directive link函数中看到该类
var elm, scope,element;
beforeEach(inject(function ($rootScope, $compile) {
elm = angular.element(
'<fk-tree tree="mockTree" tree-idField="id" tree-textField="text" tree-childField="child"' +
'tree-selected-id="mockSelected" tree-option-select-leaf="true"' +
'selected-change="mockClick(id)"></fk-tree>');
scope = $rootScope;
scope.mockTree = {
id: "test1",
text: "test1",
child: [
{
id: "test1.1",
text: "test1.1",
child: [
{
id: "test1.1.1",
text: "test1.1.1",
child: []
},
{
id: "test1.1.2",
text: "test1.1.2",
child: []
},
{
id: "test1.1.3",
text: "test1.1.3",
child: []
}
]
}
]
};
scope.mockSelected = "test1";
scope.mockClick = jasmine.createSpy();
element = $compile(elm)(scope);
$rootScope.$digest();
}));
it('says hello', function () {
var b =angular.element(document.querySelector('.fk-tree-element'));
debugger;
console.log(b.html());
});