检索Backbone Model值

时间:2014-04-25 07:12:27

标签: javascript jquery backbone.js

是否有更有效的方法来编写下面的语句来访问Backbone Model值?

self.model.attributes.person.attributes.personName

虽然以上在JS文件中工作正常,但它在我的HTML模板文件中不起作用

<%= self.model.attributes.person.attributes.personName %>

我使用下面的代码来调用模板;

this._initAndRenderModal(myModalTemplate, {
    person: this.model.toJSON()
});

如何让它在我的HTML文件中检索值?

3 个答案:

答案 0 :(得分:1)

请显示更多代码。什么是person?如果它是一个复杂/嵌套的主干模型(如personperson关系),那么您可以试试这个:

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)

获取您可能使用的名称(详情了解gethttp://backbonejs.org/#Model-get

self.model.get("person").get("personName")

要正确呈现模板,它应该是

<%= person.attributes.personName %>

当您将this.model.toJSON()传递给它时,无需指向模型本身。