我正在使用Jasmine在Angular中构建指令测试.我有一个小例子测试,看起来像这样:
it("should compare html node",inject( function ($compile,$rootScope) { var elm = angular.element('<input>'); elm = $compile(elm)($scope); $scope.$digest(); console.log('btn',elm); // output: '<input class="ng-scope">' expect(elm).toBe('<input class="ng-scope">'); expect(elm[0]).toBe('<input class="ng-scope">'); // these also fail expect(elm.html()).toBe('<input class="ng-scope">'); // "" }));
所以我得到了预期的输出到控制台,但Jasmine抱怨错误预期{length:1,0:HTMLNode}为’< input class =“ng-scope”>‘
我也尝试使用elm [0],它给出了相同的错误和elm.html()但只返回一个空字符串.如何正确地将HTML节点与字符串进行比较?
NB我知道这是一个不切实际的测试,但我只是想演示我当前的问题.
所以elm是一个angular.element,它是一个jqLite对象.正如您所指出的,您可以使用elm [0]来获取实际的dom元素.然后,您可以通过访问字段.outerHTML来访问节点的html.所以我们最终的解决方案是使用
elm[0].outerHTML
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。