2015-12-30 49 views
1

我在触发“更改”事件时遇到了一些问题。Ember - triggerEvent帮手

我有一个观察'值'属性的rangeslider。在更改时,滑块会发送一个api请求,它会根据滑块值使用参数更新url。

我能够改变使用jQuery,它成功地将更新UI滑块我的测试滑块的价值...

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

...但变化事件不是被解雇了,所以没有api电话。对于可以使用“click”或“fillIn”触发请求的类似测试,此相同的设置工作正常。

我试过使用运行循环和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()不正确?有没有更好的方法来处理这个问题?

回答

0

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

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

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