beforeEach(function () { html = '<div class="dropdown">'+ '<div class="trigger" >trigger</div>'+ '<div class="dropdown">body</div>'+ '<div>'; inject(function ($compile,$rootScope) { scope = $rootScope.$new(); element = angular.element(html); compiled = $compile(element); compiled(scope); scope.$digest(); // HERE NOT WORKING var trigger == element.find('div.trigger'); var dropdown == element.find('.dropdown'); // trigger and dropdown have both length 0 }); // Test doesn't pass it('should find the right element'),function () { expect(trigger.hasClass('trigger')).toBe(true); } });
我正在尝试单元测试一个指令,但是我不能逐个找到元素。
我想要找到像以下这样的元素:
var trigger == element.find('div.trigger') // doesn't find anything.
但现在我只能这样做:
var triggers = element.find('div') // return an array of length 2. var trigger = triggers[0];
我如何按类找到一个元素?
通过类名查找不受AngularJS查找功能的支持。相反,您可以使用vanilla javascript进行此操作:
var result = element[0].querySelectorAll('.findme');
现在,您可以通过将结果变量包含在一个有角度的元素中来检查结果变量是否具有一个findme类。
angular.element(result).hasClass('findme')
Fiddle
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。