是否有更有效的方法来编写下面的语句来访问Backbone Model值?
self.model.attributes.person.attributes.personName
虽然以上在JS文件中工作正常,但它在我的HTML模板文件中不起作用
<%= self.model.attributes.person.attributes.personName %>
我使用下面的代码来调用模板;
this._initAndRenderModal(myModalTemplate, {
person: this.model.toJSON()
});
如何让它在我的HTML文件中检索值?
答案 0 :(得分:1)
请显示更多代码。什么是person
?如果它是一个复杂/嵌套的主干模型(如person
有person
关系),那么您可以试试这个:
var name = model.get('person').get('personName');
您可以使用model.get('propertyName')
来访问模特的属性。
当你打电话
this.template({model: templateData})
我们希望您导出model
对象作为对模板数据的引用,以便您在模板中将其写为:
<%= model.get('property') %> <-- given that model is a backbone Model
或
<%= model.get('complexProperty').partOfTheComplexProperty %> <-- given that model is a backbone Model
或
<%= model.anythingYouWant %>
答案 1 :(得分:0)
这完全取决于你如何渲染它,但这应该有效:
_.template('<%= model.attributes.person.attributes.personName %>', { model: self.model });
我还建议您使用toJSON
而不是访问属性:http://backbonejs.org/#Model-toJSON
答案 2 :(得分:0)
获取您可能使用的名称(详情了解get
:http://backbonejs.org/#Model-get)
self.model.get("person").get("personName")
要正确呈现模板,它应该是
<%= person.attributes.personName %>
当您将this.model.toJSON()
传递给它时,无需指向模型本身。