Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 测试一个不符合要求的指令;没有模板或模板URL。无法访问html元素_Angularjs_Angularjs Directive_Jasmine_Karma Runner_Angular Mock - Fatal编程技术网

Angularjs 测试一个不符合要求的指令;没有模板或模板URL。无法访问html元素

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;

我正在尝试测试我的指令。它无法访问该指令生成的html并打印空对象。我测试该指令的代码如下

更新:在通过karma进行调试时,我注意到我只能访问“it块”中的顶级元素。其中的.children()或.html()始终会生成“[[object HTMLSpanElement],[object htmldevelement]”

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());
    });