jd.*_*jd. 9 javascript ember.js ember-data
我有以下型号:
#order/model.coffee
Order = DS.Model.extend {
line_items: DS.hasMany 'product', {async: true}
}
Run Code Online (Sandbox Code Playgroud)
在某些时候,我想将一些产品添加到订单中.我发现我只能添加一次产品,再添加相同的产品不起作用:
#product/route.coffee
...
actions:
# Not actually my code but illustrates the problem
addToCart: (product1, product2)->
order = @modelFor 'order'
console.log order.get('line_items.length') # prints 0
order.get('line_items').pushObject product1
console.log order.get('line_items.length') # prints 1
order.get('line_items').pushObject product2
console.log order.get('line_items.length') # prints 2
order.get('line_items').pushObject product1
console.log order.get('line_items.length') # prints 2
order.get('line_items').pushObject product2
console.log order.get('line_items.length') # prints 2
...
Run Code Online (Sandbox Code Playgroud)
问题是用户可能不止一次需要单个项目.表示该方法的最简单方法是使数组具有重复条目.看来Ember并没有让我为关系这样做.如何在关系中多次添加模型?
它们应该有一个id属性,然后它们将能够在同一个数组中共存,并且是同一产品类型的不同项目 - 具有相同的名称(除了 之外,所有属性都相同id)。
或者,您有一个代表产品类型的记录,然后有一个quantity属性来指定每种产品的数量。