Добавьте значения в представление с помощью JSON и Backbone.js - PullRequest
0 голосов
/ 22 марта 2012

У меня есть View (созданный с использованием Backbone.View.extend) и объект JSON, я фактически получаю объект из базы данных couchdb. Как я могу дать значения для представления?

Например, у меня есть эти два объекта:

var personJSON = {"name":"Buddy","email":"trout@fish.net"}
var personDetailsView; //Backbone.View

Есть ли способ передать значения в представление без явного сопоставления их с моделью?

Я нашел примеры, где вы можете добавлять объекты в коллекции Backbone, но не в представление.

Ответы [ 2 ]

1 голос
/ 22 марта 2012

Если вам нужен доступ к объекту JSON в объекте PersonDetailsView (Backbone.View), один из способов сделать это - передать параметр JSON в качестве параметра в конструкторе представления:

//view definition
var PersonDetailsView = Backbone.View.extend({
  initialize: function(){
     this.person = this.options.person; //do something with the parameter
  }
});

var personJSON = {"name":"Buddy","email":"trout@fish.net"};
var personDetailsView = new PersonDetailsView({ person : personJSON });

Из официальной документации Backbone:

При создании нового просмотра передаваемые вами параметры присоединяются к представлению как this.options для дальнейшего использования.

0 голосов
/ 22 марта 2012

Обычно вы извлекаете модель из коллекции моделей и передаете ее для просмотра:

var person=personCollection.find(1);
var view=new PersonView({model: person});
var personView = Backbone.View.extend({
  template: JST['personTemplate'],
  render: function(){
    this.$el.html(this.template(this.model.toJSON()));
    return this;
  }
});
$('#container').html(personView.render().el);
...