当模型的一个属性绑定到模板输入时,立即持久化模型的最佳实践是什么?您认为它属于模型还是控制器?
我根据观察者提出了这个解决方案:
# Models
App.Foo = DS.Model.extend
bars: DS.hasMany('bars')
App.Bar = DS.Model.extend
quantity: DS.attr('number')
# Template
{{#each bar in bars}}
{{input value=bar.quantity}}
{{/each}}
# Controller
persistQuantity: ( ->
@get('bars').forEach (bar) -> bar.save() if bar.get('isDirty')
).observes('bars.@each.quantity')
但是由于某种原因,这会触发同一模型的多个(对我来说是 3 个)保存请求。
我还尝试将观察者放在模型上,但这进入了一个无限循环:
# App.Bar Model
persistQuantity: ( ->
@save()
).observes('quantity')
我试图通过 来解决这个问题Ember.run.once
,但显然我对 Ember 运行循环的理解还不够深入。