2015-09-01 65 views
0

在我的測試套件中,我想確認在文本輸入字段中輸入字符的效果。它應該導致計算值的變化。如何通過DOM操作觸發計算屬性的重新計算

事實上,當我在文本字段中輸入字符時,它正常工作並重新計算。

如果我設置使用

$('#my_input_field').val("F") 

計算值的文本字段不會改變。如果我在輸入元素上觸發一個keydown或keyup事件,它也不會改變。如何通過DOM操作以編程方式觸發屬性重新計算?

回答

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事件,因爲這就是雙向綁定正在監聽的內容(而不是​​和朋友)。它必須是一個本地DOM事件,而不是一個jQuery事件(它使用不同的機制)--Ractive測試套件使用simulant來減少麻煩。


+0

最有用的,就像往常一樣富有哈里斯。非常感謝你。 –