我有一个View(使用Backbone.View.extend创建)和一个JSON对象,我实际上是从couchdb数据库中获取对象。如何将值赋给视图?
例如,我有这两个对象:
var personJSON = {"name":"Buddy","email":"trout@fish.net"}
var personDetailsView; //Backbone.View
有没有办法将值传递给视图而不将它们显式映射到模型?
我找到了可以将对象添加到Backbone集合但不是视图的示例。
答案 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);