在Ember获取侧载记录

时间:2014-04-09 21:49:28

标签: ember.js ember-data

我有一个与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
    });
}

1 个答案:

答案 0 :(得分:0)

你会这样做:

actions: {
    var products = [];

    this.get('model').get('products').forEach(function(product) {
        products[index] = product;
    });
}

但你真的不应该这样做。不应该需要创建新阵列。只需获取this.get('model').get('products'),就应该返回一个包含所有模型的对象,并能够迭代或做任何你喜欢的事情。

相关问题