在我的测试套件中,我想确认将字符输入文本输入字段的效果。它应该导致计算值的变化。
事实上,当我在文本字段中输入字符时,它正常工作并重新计算。
如果我使用
设置文本字段$('#my_input_field').val("F")
计算值不会改变。如果我在input元素上触发keydown或keyup事件,它也不会改变。如何通过DOM操作以编程方式触发属性重新计算?
答案 0 :(得分:1)
您可以使用ractive.updateModel(keypath)
强制双向绑定进行更新:
<input value='{{value}}'/>
ractive.find('input').value = 'newValue';
ractive.updateModel('value'); // or just `ractive.updateModel()`
console.log( ractive.get( 'value' ) ); // 'newValue'
如果要通过触发人工DOM事件来引发更新,请使用change
事件,因为这是双向绑定正在侦听的内容(而不是keydown
和朋友)。它必须是本机DOM事件,而不是jQuery事件(使用不同的机制) - Ractive测试套件使用simulant来减少麻烦。