2015-04-10 2 views
0

Я новичок в Тлеющей JS, у меня есть ответ JSon на модель Emberemberjs has_many ассоциации дает ненагруженные данные

{:login_fields=> 
     [ 
     {:component=>"ns4:FieldInfoComponent", 
     :id=>1, 
     :fieldinfos=> 
      [{:fieldInfoObj=>"FieldInfoSingle", :id=>2, :login_field_id=>1}], 
     :fieldinfo_ids=>[2]}, 
     {:component=>"ns4:FieldInfoComponent", 
     :id=>2, 
     :fieldinfos=> 
      [{:fieldInfoObj=>"FieldInfoSingle", :id=>2, :login_field_id=>2}], 
     :fieldinfo_ids=>[2]} 
     ] 
    } 

И loginField модель emberjs:

App.LoginField = DS.Model.extend 
    component: DS.attr 'string' 
    fieldinfos: DS.hasMany('App.Fieldinfo') 

FieldInfo модель:

App.Fieldinfo = DS.Model.extend 
    login_field: DS.belongsTo 'App.LoginField' 
    fieldInfoObj: DS.attr 'string' 

Ответ ember, который я получаю, содержит поля и правильные значения модели loginfield, а также ассоциации это с моделью fieldinfo, но данные fieldinfo отображаются как Объект {id = "2", clientId = 5, data = "loading", more ...} Почему бы мне не получить фактические данные для модель has_many?

ответ

0

От Ember docs about model relationships:

JSON должен кодировать отношения как массив идентификаторов:

{ 
    "post": { 
    "comments": [1, 2, 3] 
    } 
} 

Тогда sideloaded если вы хотите получить все информации в одном запросе:

{ 
    "post": { 
    "id": 1, 
    "title": "Node is not omakase", 
    "comments": [1, 2, 3] 
    }, 

    "comments": [{ 
    "id": 1, 
    "body": "But is it _lightweight_ omakase?" 
    }, 
    { 
    "id": 2, 
    "body": "I for one welcome our new omakase overlords" 
    }, 
    { 
    "id": 3, 
    "body": "Put me on the fast track to a delicious dinner" 
    }] 
} 

Проблема с вашим json заключается в том, что Ember ожидает, что field_infos будет массивом идентификаторов, и для вас это фактические объекты. Затем, чтобы усугубить проблему, field_infos является массивом fieldInfoObjs. Уилл, какая радость!

Если у вас есть какой-либо контроль над json, я бы рекомендовал изменить его, чтобы он соответствовал what EmberData expects.

Если у вас нет контроля над входящим JSON, прокомментируйте этот ответ, и я могу попытаться направить вас к ресурсу, который вам понадобится.

+0

Kori благодарит за ответ, на самом деле вот что я пытаюсь сделать, это загрузить несколько login_fields, где каждое поле входа has_many fieldinfos –

Смежные вопросы