如何使用以编程方式更改的Ember.TextBox数据更新商店?

时间:2013-08-01 08:53:02

标签: javascript jquery ember.js

我在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数据?

1 个答案:

答案 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的对象模型是如何工作的。

希望它有所帮助。