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

Add values to a view with JSON and Backbone.js

本文关键字:视图 添加 js JSON Backbone 使用      更新时间:2023-09-26

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

例如,我有以下两个对象:

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

有没有一种方法可以在不将值显式映射到模型的情况下将值传递到视图中?

我发现了一些示例,其中可以将对象添加到主干集合,但不能添加到视图。

如果您需要访问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的官方文档:

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

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

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