Ember не обнаруживает все атрибуты из ответа сервера

#javascript #rest #ember.js #ember-data

#javascript #rest #ember.js #ember-данные

Вопрос:

Редактировать: Ember 1.7.1 , ember-data 1.0.0-beta12

Ответ от сервера кажется правильным, но ember, похоже, не загружает ответ должным образом в данные. Ниже приведен ответ от findQuery() on feedstories :

Ответ findQuery

После создания записи сервер отправляет следующий ответ. Что кажется правильным, поскольку это создание отдельной записи.

создать ответ записи

Ember загружает story_type post, но, как вы можете видеть, другие атрибуты, такие как global_id (который был установлен в качестве первичного ключа в сериализаторе), не были загружены. Встроенный атрибут истории имеет ту же проблему, когда часть информации верна (тело, заголовок и т.д.), Но не загружает все остальные атрибуты. Они установлены как undefined .

Ember Inspector

Я думаю, что может быть что-то не так с тем, как я сериализую данные на стороне клиента. Но поскольку часть информации загружается, я не слишком уверен. Есть идеи?

Вот адаптер и сериализатор ниже:

 App.FeedstorySerializer = DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
    primaryKey: 'global_id',
    attrs: {
        pin: {embedded: 'always' },
        story: {embedded: 'always'},
    },
    serializeIntoHash: function(hash, type, record, options){
        // Removed the root element from the request payload.
        // If not completed, causes issue when getting data from
        // the bundle object on the server.
        Ember.merge(hash, this.serialize(record, options));
    },
});


App.FeedstoryAdapter = App.ApplicationAdapter.extend({
    buildURL: function(type, id, record){
        this._super();
        url = '/'   this.namespace   '/feedstories/'
        return url
    }
});
  

Комментарии:

1. Глупый вопрос: все ли эти атрибуты определены в вашей модели?

2. @ChrisPeters Да, похоже, я не получаю никаких предупреждений и проверил, что они все есть. Когда выполняется findQuery, feedstories загружаются корректно со всеми данными. Когда я создаю новый, ничего не происходит, и я ожидаю, что он покажет новую историю поверх других.

3. @ChrisParry будет ли новый отображаться внизу?

Ответ №1:

Из ответа query vs single вам не хватает корневого feedstory ключа в вашем json.