在ember

时间:2017-07-27 13:09:10

标签: ember.js ember-data

我从存储中获取数据时遇到了一些问题。

Isset型号订单

import DS from 'ember-data';

export default DS.Model.extend({
   test: DS.hasMany('dealer-status'),
});

适配器(它是测试数据)。我没有将normolize响应,我将params添加到data进行规范化。它的实现将在serialize

export default DS.JSONAPIAdapter.extend({
service:  Ember.inject.service('admin.auth'),
query(store, type, query) {

    var service = this.get('service');
    return new Ember.RSVP.Promise(function (resolve, reject) {

        service.fetch(query).subscribe(
            res => {

                var data = {
                    "data": [{
                        "type": "user",
                        "id": "1",
                        "attributes": {
                            test: 'test'

                        }
                    }]
                };
                resolve(data);
            },
            err => {
                reject(err);
            });
    });
}
});

路由器:

model() {

    return   this.get('store').query('orders', {}).then(res => {
        console.log(res.get('test')); //undefined
        console.log(res.objectsAt(0)); //undefined

    })

在我query找到的路由器中,但我无法获得参数test。在Promise res.get(' test')中返回undefined。

为什么我的承诺未定义?如何解决?

1 个答案:

答案 0 :(得分:1)

因为在您的order模型中,您没有属性test。这是hasMany关系。查看json API documentation about relationships in resource objects了解更多详情。