Parse.com - атрибуты Parse.Object.extend(...)

Я работаю с Parse JS и Backbone, и я пытаюсь распечатать список значений из модели Parse JS. Это легко, но у меня проблема с objectId.

Тогда у меня есть...

var Thing = Parse.Object.extend('MyThings');
var Things = Parse.Collection.extend({
 model: Thing
});

var collection = new Things();
collection.fetch({
 success: function(){
 App.start(collection.toJSON());
 }
});

Это мнение...

ThingView = Backbone.View.extend({
 tagName: 'tr',
 render: function(){
 this.$el.html(_.template($('#item-template').html(), this.model.attributes));
 }
});

ThingListView = Backbone.View.extend({
 tagName: 'table',
 addAll: function(){
 this.collection.forEach(this.addOne, this);
 },
 render: function(){
 this.$el.empty();
 this.addAll();
 },
 addOne: function(item){
 var itemView = new ThingView({model: item});
 itemView.render();
 this.$el.append(itemView.el);
 }
});

И это шаблон (с Underscore.js)...

Имя и цвет атрибутов отображаются правильно, но 'id не определен'

Есть идеи?

1 ответ

Проблема в том, что id не живет в атрибутах. Он фактически живет в корне объекта. Итак, что вам нужно сделать, это передать this.model в _.template() вместо this.model.attributes, а затем соответствующим образом скорректировать в своем HTML - например, следующее:

render: function(){
 this.$el.html(_.template($('#item-template').html(), this.model));
}

<%= id %>
<%= attributes.name %>
<%= attributes.color %>

licensed under cc by-sa 3.0 with attribution.