Ember-triggerEvent辅助对象



我在成员验收测试中触发"更改"事件时遇到问题。

我有一个具有观察到的"值"属性的范围滑块。在更改时,滑块会发送一个api请求,根据滑块值用params更新url。

我可以使用jQuery更改测试中滑块的值,它成功地更新了UI中的滑块。。。

$("#slider").val(3.0).change();

但是change事件没有被触发,所以没有api调用。同样的设置也适用于类似的测试,我可以使用"点击"或"填写"来触发请求。

我已经尝试使用run循环和triggerEvent辅助对象(见下文),但没有成功。

    // 1. using the run loop -- updates UI, but no change event fired
    Ember.run(function() {
      $("#gpa-slider").val(3.0).change();
    });
    andThen(() => {
      assert.equal(currentURL(), "/athletes?gpa=3.0")
    });

    //2. using triggerEvent helper -- 
    //   doesn't update UI, slider value, or trigger change event
    triggerEvent('#gpa-slider', 'change', {value: 3.8} )
    andThen(() => {
      assert.equal(currentURL(), "/athletes?gpa=3.0")
    });

我是否错误地设置了triggerEvent()?有更好的方法来处理这个问题吗?

我可以通过单击滑块手柄来触发更改事件。

click(Ember.$('.rangeslider__handle'));
andThen(() => {
  assert.equal(currentURL(), '/athletes?gpa=3.0');
});

我仍然不知道我用triggerEvent()助手做错了什么,但也许这会在未来帮助一些可怜的灵魂。

相关内容

  • 没有找到相关文章

最新更新