如何在控制器内的商店或ember.js中的路径中钻取任何模型?

时间:2013-12-19 10:58:55

标签: javascript ember.js ember-data

我的路线中有我的承诺功能

setupController: function (controller,model) {
    // Set the IndexController's `title`
    this.controllerFor('New').set('model', model);
    this.store.find('selectFill', { x: "20", y: "30" }).then(function (data) {
        controller.set('selectFill',data.?????);
    });
}

我的模型看起来像这样,

App.SelectFill = DS.Model.extend({
    users: DS.hasMany('user', {
        embedded: true
    })
});
App.User = DS.Model.extend({
    userId:DS.attr('string'),
    department: DS.attr('string')
});

无论如何,一旦承诺被击中,我在商店中有数据。我的问题是,我如何从中提取用户?

这是我从promise函数中得到的类。

请参阅this image here.

用户数组你可以在底部看到。但我如何从承诺回调到达那里? 对不起,如果我的问题很愚蠢,但我还是个新人。

1 个答案:

答案 0 :(得分:0)

this.store.find('selectFill', { x: "20", y: "30" })将解析类似对象(DS.AdapterPopulatedRecordArray)的数组,该示例是selectFills变量。因为它是一种数组,所以您可以使用forEach在每个selectFill中迭代并让用户调用selectFill.get('users')。像这样:

setupController: function (controller,model) {
    // Set the IndexController's `title`
    this.controllerFor('New').set('model', model);
    this.store.find('selectFill', { x: "20", y: "30" }).then(function (selectFills) {
        selectFills.forEach(function(selectFill) {
            var users = selectFill.get('users');
            // do something with the users
        });
    });
}