2016-02-12 2 views
1

У меня есть объект JSON из моего бэкэнда Spring. Как создать объект данных в моем хранилище приложений Ember?Как конвертировать JSON для хранения объекта?

Я пробовал:

createObject() { 
    var _this = this; 
    $.getJSON('http://localhost:8080/object/getCard?id=24').then(function(response) { 
    _this.store.createRecord('cards/object/card', response); 
    }); 
} 

JSON:

{ 
    "id":24, 
    "fullName":"qwerty", 
    "form":"zzzzzzzzzzzz", 
    "leader": { 
    "id":23, 
    "fullName":"testName test", 
    "email":"emailTest" 
    } 
} 

У меня есть модель, в Ember приложение

export default DS.Model.extend({ 
    fullName: DS.attr('String'), 
    form: DS.attr('String'), 
    leader: DS.belongsTo('contact', { async: true }) 
} 

и контактная модель:

export default DS.Model.extend({ 
    fullName: DS.attr('String'), 
    email: DS.attr('String') 
}); 

ответ

4

Вы должны использовать store.pushPayload вместо этого, так как запись уже существует во внутреннем интерфейсе:

createObject() { 
    $.getJSON('http://localhost:8080/object/getCard?id=24').then((response) => { 
    this.store.pushPayload(response); 
    }); 
} 
+0

Спасибо, но у меня есть сообщение об ошибке: «Uncaught Ошибка: Assertion Ошибка: Ожидаемый объект в свойстве„Данные“в вызов «push» для неопределенного, но не определен ». – Swyd

+1

Hm, вам нужно сопоставить формат вашего JSON с тем адаптером, который вы используете. См. [Model Maker] (http://andycrum.github.io/ember-data-model-maker/) для справки. Возможно, вам понадобится [реализовать пользовательский сериализатор] (https://guides.emberjs.com/v2.3.0/models/customizing-serializers/). – locks

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