将所有 backbone 个模型属性写入 html 个模板
write all backbone model attributes to html template
我正在使用 backbone 视图将模型数据写入模板。
我目前正在视图中执行此操作:
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)现在正在做。
谢谢
如果你想将多个模型传递给视图,你可以这样做:
您的内部视图:
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 />
您可以使用 _.values(object) - http://underscorejs.org/#values
这将 return 该对象属性的所有值。
但是,您可能会更好,为不同的模型类型使用不同的视图,并为每个模型类型定制模板。
如果您只想查看模型内部的所有内容,您可以通过将参数传递给 JSON.stringify 从 json 生成漂亮的可读字符串,然后将其打印在视图中的某处。
JSON.stringify(this.model.toJSON(), false, 2)
我正在使用 backbone 视图将模型数据写入模板。
我目前正在视图中执行此操作:
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)现在正在做。
谢谢
如果你想将多个模型传递给视图,你可以这样做:
您的内部视图:
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 />
您可以使用 _.values(object) - http://underscorejs.org/#values
这将 return 该对象属性的所有值。
但是,您可能会更好,为不同的模型类型使用不同的视图,并为每个模型类型定制模板。
如果您只想查看模型内部的所有内容,您可以通过将参数传递给 JSON.stringify 从 json 生成漂亮的可读字符串,然后将其打印在视图中的某处。
JSON.stringify(this.model.toJSON(), false, 2)