在把手模板上,我想用值预先填充输入字段。我可以通过put value = object.property来做。然后,用户应更新该值,当他们单击激活操作的按钮时,该值应提交给Component。
问题是没有提交任何值,而不是预先填充的值或新值。当我在console.log中提交给组件的内容时,文本字段的输入是“未定义”,而数字字段的输入是“NaN”。
这是我的车把模板:
{{input type="text" value=object.name valueBinding='newName'}}
{{view App.NumberField min='1' value=object.count valueBinding='newCount'}}
<button {{action updateObjectDetails object}}>Save</button>
它提交的相关组件:
App.ObjectsDetailsComponent = Ember.Component.extend({
actions: {
updateObjectDetails: function(object){
object.set("name", this.get('newName'))
object.set("party_size", parseInt(this.get('newCount')))
object.save();
}
}
});
有没有办法用正确的值填充输入字段并让它通过操作提交?
答案 0 :(得分:1)
啊,明白了。问题是不要像创建新对象时那样尝试使用valueBindings,而是使用实际值,因为实际值正在变化。所以在组件中,它是object.get('name'),而不是this.get('newName')。
因此车把应该是这样的:
{{input type="text" value=object.name}}
{{view App.NumberField min='1' value=object.count}}
<button {{action updateObjectDetails object}}>Save</button>
这样的组件:
App.ObjectsDetailsComponent = Ember.Component.extend({
actions: {
updateObjectDetails: function(object){
object.set("name", object.get('name'))
object.set("party_size", parseInt(object.get('count')))
object.save();
}
}
});