我使用骨干视图将模型数据写入模板。
我目前在视图中这样做:
return Backbone.View.extend({
className: 'presentationListItem',
template: _.template(tmpl, null, { variable: 'm' }),
render: function() {
this.$el.html(this.template(_.extend({}, this.model.toJSON())));
return this;
}
然后在我的HTML模板中,我访问这样的数据:
Catalog ID: {{ m.Id }} <br />
Catalog Name: {{ m.Name }} <br />
最近,我不得不通过这个视图传递不同的模型,具有不同的属性。
我想知道是否有办法将模型中的所有内容写入HTML模板,而无需像我现在所做的那样指定特定属性(即ctx.Id,ctx.Name)。
由于
答案 0 :(得分:1)
如果要将多个模型传递给视图,可以这样做:
在你看来:
template: _.template(tmpl)
...
render: function() {
this.$el.html(this.template({
model1: this.model1.toJSON(),
model2: this.model2.toJSON()}));
return this;
}
你的模板:
Catalog ID: {{ model1.Id }} <br />
Catalog Name: {{ model2.Id }} <br />
答案 1 :(得分:1)
您可以使用_.values(object) - http://underscorejs.org/#values
这将返回该对象属性的所有值。
然而,您可能会更好,为不同的模型类型使用不同的视图,并为每个模型定制模板。
答案 2 :(得分:1)
如果您只想查看模型中的所有内容,可以通过将参数传递给JSON.stringify然后将其打印到视图中的某个位置,从json中生成可读的字符串。
JSON.stringify(this.model.toJSON(), false, 2)