如何通过DOM操作触发重新计算计算属性

时间:2015-09-01 13:40:47

标签: ractivejs

在我的测试套件中,我想确认将字符输入文本输入字段的效果。它应该导致计算值的变化。

事实上,当我在文本字段中输入字符时,它正常工作并重新计算。

如果我使用

设置文本字段
$('#my_input_field').val("F")

计算值不会改变。如果我在input元素上触发keydown或keyup事件,它也不会改变。如何通过DOM操作以编程方式触发属性重新计算?

1 个答案:

答案 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来减少麻烦。