javascript - 如何使用 Jasmine 测试嵌套的 ng-click
问题描述
我有一个类似这样的 HTML:
<li ng-show="obj.displayTab" role="tab">
<a tabindex="0" ng-click="abc($event)">
NAME
<div id="stdCloseButton" tabindex="0" role="button" ng-click="xyz()">
PIC
</div>
</a>
在 Jasmine 测试中,我想绑定xyz()
,但即使我到达嵌套div
并触发点击事件,它仍然会触发abc()
。
var closeDiv = testElement.find( '#stdCloseButton' ).first();
angular.element( closeDiv).click();
不知道该去哪里。帮助表示赞赏。
解决方案
您的 HTML 无效。按照设计,内联元素(如 an anchor
)不能包含块元素(如 a div
),反之亦然。您无法对此进行测试这一事实表明这里可能存在其他问题。请考虑改用以下有效的 HTML。
<li ng-show="obj.displayTab" role="tab">
<a tabindex="0" ng-click="abc($event)">
NAME
</a>
<div id="stdCloseButton" tabindex="1" role="button" ng-click="xyz()">
PIC
</div>
</li>
推荐阅读
- putty - 如何在 Putty 中将一个文件夹移回
- jmeter - JMeter - 处理大量响应
- javascript - 当我点击图像时,动画只工作一次
- memory-leaks - JVM 堆和 vmdata
- c# - 在 Xamarin 中使用覆盖视图填充屏幕
- javascript - 如何将svg rect和文本向左对齐
- ios - ios App未在应用商店审核中显示infoPlist权限字符串并被拒绝
- c++ - Nested vector
and reference manipulation - git - 我可以缩短 git 存储库的历史吗
- apache-spark - Spark join 性能优化