余烬级别有很多序列化问题

时间:2018-10-10 19:44:17

标签: serialization ember.js

我的模型序列化面临一些问题。下面是一个详细的代码,它将显示我当前的模型和相应的序列化器的外观。

  1. 用户模型

    export default Model.extend({
      name: attr('string'),
      accounts: hasMany('account', {async: false})
    });
    
  2. 帐户模型

     export default Model.extend({
         type: attr('string'),
         transactions: hasMany('transaction')
     })
    
  3. 交易模型

     export default Model.extend({
        date: attr('string'),
        amount: attr('number')
     })
    

所以基本上它是另一个hasMany中的hasMany。

序列化器如下:

  1. 基本序列化器:

     export default BaseSerializer.extend({
        keyForAttribute(key) {
          return key.underscore();
        },
        keyForRelationship(key, relationship) {
           return key.underscore();
        }
       });
    
  2. 用户序列化器:

    export default BaseSerializer.extend(DS.EmbeddedRecordsMixin, {
     attrs: {
       account: { embedded: 'always' }
     }
    });
    
  3. 帐户序列化器:

    export default BaseSerializer.extend(DS.EmbeddedRecordsMixin, {
     attrs: {
       transaction: { embedded: 'always' }
     }
    });
    

现在,当我调用api调用时,该调用给了我一个json响应,其中用户模型具有一个名为accounts的属性:内部具有另一个称为transaction的属性,我期望它们进行序列化,但以某种方式无法正常工作。我在这里做错了什么吗?请告知,因为我是新手,仍然在学习。

基本序列化器为:

   export default DS.JSONSerializer.extend(DS.EmbeddedRecordsMixin, {
      keyForRelationship(key, relationship) {
        return key.underscore();
      }
   })

序列化json

我没有它,但是从控制台日志中,好像只有用户模型正在序列化,就像我尝试打印console.log(user.get('accounts')。get('firstObject')。get('类型”),然后我在那里看到未定义的内容。

我想要的是:

{

  name: "bhavya"
  accounts: [
   {
     type : 'savings',
     transactions: [
       {  
         amount: 500
       }
     ]
  }
 ]
}

0 个答案:

没有答案