首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在AngularJS的指令测试中触发ng-change

如何在AngularJS的指令测试中触发ng-change
EN

Stack Overflow用户
提问于 2013-07-13 11:11:29
回答 5查看 36.9K关注 0票数 19

我有以下创建input元素的AngularJS指令。输入具有运行doIt()函数的ng-change属性。在我的指令的单元测试中,我想检查当用户更改输入时是否调用了doIt函数。但是测试没有通过。尽管它在浏览器中手动测试时可以正常工作。

指令:

...
template: "<input ng-model='myModel' ng-change='doIt()' type='text'>" 

测试:

el.find('input').trigger('change') // Dos not trigger ng-change

实时演示(ng-change):http://plnkr.co/edit/0yaUP6IQk7EIneRmphbW?p=preview

现在,如果我手动绑定change事件而不是使用ng-change属性,测试就会通过。

template: "<input ng-model='myModel' type='text'>",
link: function(scope, element, attrs) {
  element.bind('change', function(event) {
    scope.doIt();
  });
}

实时演示(手动绑定):http://plnkr.co/edit/dizuRaTFn4Ay1t41jL1K?p=preview

有没有一种方法可以使用ng-change并使其可测试?谢谢。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17626604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档