在这种情况下,我应该如何在余烬中放置我的模型有很多关系

How should I lay my model in ember in case of this hasMany relations?

本文关键字:模型 我的 关系 这种情况下 我应该 余烬中      更新时间:2023-09-26

我从服务器发送的JSON如下所示,

{"selectFill":{"user":[{"userId":"Gru","department":"Villain"},{"userId":"Sulley","department":"Scare"},{"userId":"Popeye","department":"Sailer"}]}}

我的模型是这样的,

    App.SelectFill = DS.Model.extend({
    users: DS.hasMany('user',{
        embedded: true
    })
});
App.User = DS.Model.extend({
    userId: DS.attr('string'),
    department: DS.attr('department')
});
App.SelectFillSerializer = DS.WebAPISerializer.extend({
    extractArray: function (store, type, payload, id, requestType) {
        var primaryTypeName = type.typeKey;
        var typeName = primaryTypeName,
            type = store.modelFor(typeName);
        var selectFill = [];
        selectFill.push(payload.selectFill);
        var newi = {};
        newi[typeName] = selectFill;
        return this._super(store, type, newi, id, requestType);
    }
});

我在Chrome调试器中使用ember检查器检查了代码,我可以在SelectFill中看到1条记录,但它是空的。用户记录也是空的。你能告诉我,我在这里做错了什么吗?我是Ember的新手,我试着进入Ember源代码和我的大脑,我的大脑开始旋转。每个人都通过深入Ember源代码来调试他们的代码吗?

您需要将数据转换为这种格式,并且您需要所有记录的id(如果您希望userId是用户的id,请将其从模型定义中删除并添加到适配器中)

{
  "selectFill":
    {
      id:'something',
      "users":['Gru', 'Sulley','Popeye']
    },
  "users":[
    {"userId":"Gru","department":"Villain"},
    {"userId":"Sulley","department":"Scare"},
    {"userId":"Popeye","department":"Sailer"}]
  }
App.UserAdapter = DS....extend({
   primaryKey: 'userId'
});

https://github.com/emberjs/data/blob/master/TRANSITION.md