我在Ember.js模板中有一个Ember.TextField:
{{view Ember.TextField valueBinding='name' id='myname'}}
它工作正常,保存到商店,而不是标准Ember.js。
但是当我以编程方式更改此文本框的值时:
document.getElementById('myname').value = 'other';
然后保存,它没有保存。 当我在执行上面的代码后手动添加一个字母时,值会正确保存。
所以我的问题是:
如何更改文本框programmaticaly的值,以便更新Ember.js数据?或者:如何直接在Ember.js数据中更改数据?或者:如何手动将数据从字段保存到底层Ember.js数据?
答案 0 :(得分:1)
此处提供了有关如何以编程方式更改文本字段值的示例:http://jsbin.com/ilewas/2/edit
现在进行一些解释,如果你使用像document.getElementById('myname').value = 'other';
这样的普通javascript来改变值,ember就不会知道,ember中的所有内容都基于Ember.Object
所以你必须使用eighter数据绑定机制或直接在动作调用中设置值,如使用内置setter方法的示例中那样。
Dan Gebhardt的good blog post非常详细地解释了ember的对象模型是如何工作的。
希望它有所帮助。