При выполнении операции выборки на модели я вижу API, возвращающий нужные данные в формате JSON. При регистрации в консоли модели отображаются новые данные в «измененном» объекте.Массивная модель выборки, а затем визуализировать вид
До и после извлечения:
Object {
cid: "c1",
attributes: Object,
_changing: false,
_previousAttributes: Object,
changed: Object,
id: undefined,
_pending: false
}
Object {
cid: "c1",
attributes: Object,
_changing: false,
_previousAttributes: Object,
changed: Object[1],
id: undefined,
_pending: false
}
Данные, очевидно, является неправдоподобным, и он присутствует в модели. Однако при рендеринге отображаются значения по умолчанию.
App.Models.Document = Backbone.Model.extend({
defaults: {
id: '',
owner: 0,
created: '',
lastupdate: '',
content: 'Default document content'
},
url: '/api/'
});
App.Views.DocumentView = Backbone.View.extend({
tagName: 'textarea',
className: 'editor',
template: App.Template('editortemplate'),
initialize: function() {
// As proposed in so many similar questions
this.listenTo(this.model, "change", this.render);
},
render: function() {
this.$el.html(this.template(this.model.toJSON()));
$(".app-content").html(this.$el);
return this;
}
});
a = new App.Models.Document();
a.fetch();
b = new App.Views.DocumentView({ model: a });
b.render();
Как обновить представление должным образом новыми данными?
Если я удаляю значения по умолчанию из модели, «контент» не определен.
Это странно, что 'изменилось: Object' изменения в' изменен: Object [1], '. Какова структура данных, возвращаемых API? Идентификатор BTW является специальным атрибутом, используемым магистральной сетью. –
Возвращаемые данные объекта JSON [{ "идентификатор": "1", "владелец": "1", "создано": "2016-04-30 21:57:23", " lastupdate ": null, " content ":" Successful API fetch " }] – hesonline
Это означает, что вам нужно реализовать либо' parse() 'для обработки ответа до того, как Backbone задает его атрибутам модели, либо вам нужно извлечь из этот ресурс REST из ['Collection'] (http://backbonejs.org/#Collection). –