使用JSON和Backbone.js向视图添加值

时间:2012-03-22 03:50:59

标签: javascript json backbone.js couchdb

我有一个View(使用Backbone.View.extend创建)和一个JSON对象,我实际上是从couchdb数据库中获取对象。如何将值赋给视图?

例如,我有这两个对象:

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

有没有办法将值传递给视图而不将它们显式映射到模型?

我找到了可以将对象添加到Backbone集合但不是视图的示例。

2 个答案:

答案 0 :(得分:1)

如果您需要访问PersonDetailsView(Backbone.View)对象中的JSON对象,一种方法是将JSON参数作为View的构造函数中的选项传递:

//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的official documentation:

  

创建新视图时,您传递的选项会作为this.options附加到视图中,以供将来参考。

答案 1 :(得分:0)

通常,您通过模型集合检索模型并将其传递给视图:

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);