我有一个与hasMany关系的模型:
App.Offer = DS.Model.extend({
shop: DS.attr('number'), //ext key
name: DS.attr('string'),
description: DS.attr('number'),
products: DS.hasMany('product', {embedded: true})
});
App.Product = DS.Model.extend({
name: DS.attr('string'),
description: DS.attr('string'),
});
该记录由服务器旁加载,如果我在模板中使用它,它可以工作:
{{#each product in model.products}}
<li>{{product.nome}} - {{product.descrizione}}</li>
{{/each}}
但是,如果我想将产品加载到控制器中的数组中呢?
actions: {
var products = [];
$.each(this.get('model').get('products'), function(index, value) {
products[index] = value.get('nome'); //this doesn't work
});
}
答案 0 :(得分:0)
你会这样做:
actions: {
var products = [];
this.get('model').get('products').forEach(function(product) {
products[index] = product;
});
}
但你真的不应该这样做。不应该需要创建新阵列。只需获取this.get('model').get('products')
,就应该返回一个包含所有模型的对象,并能够迭代或做任何你喜欢的事情。