Backbone.js 如何在下划线Java脚本模板中显示嵌套属性

Backbone.js 如何在下划线Java脚本模板中显示嵌套属性,backbone.js,underscore.js,jquery-templates,Backbone.js,Underscore.js,Jquery Templates,我有一个主干模型营养项目,包含数量、百分比和计量单位。比如说 var nut = Backbone.Model.extend({ defaults: { quantity: '0', percent: 0, uom: 'g', } }); 我还有另外一个模型,它包含了产品的全部营养成分 var nutrition = Backbone.Model.extend({ defaults:{ servingSize: new nut(), calories: new nut(

我有一个主干模型营养项目,包含数量、百分比和计量单位。比如说

var nut = Backbone.Model.extend({
defaults: {
    quantity: '0',
    percent: 0,
    uom: 'g',
}
});
我还有另外一个模型,它包含了产品的全部营养成分

var nutrition = Backbone.Model.extend({
defaults:{
servingSize: new nut(),
calories: new nut(),
caloriesFromFat: new nut(),
totalFat: new nut(),
saturatedFat: new nut(),
cholesterol: new nut(),
sodium: new nut(),
totalCarbohydrate: new nut(),
dietaryFiber: new nut(),
sugars: new nut(),
protein: new nut(),
vitaminA: new nut(),
vitaminC: new nut(),
calcium: new nut(),
iron: new nut(),    
},
});
但当我通过将营养模型传递给下划线模板来打印营养时,我发现未定义。它不支持嵌套属性吗

<tr>
<td><strong>Total Fat <%=totalFat.quantity%> <%=totalFat.uom%></strong></td>
<td class="dv"><%=totalFat.percent+'%'%></td>
</tr>
<tr>
 <td class="sub">Saturated Fat <%=saturatedFat.quantity%> <%=saturatedFat.uom%></td>
 <td class="dv"><%=saturatedFat.percent+'%'%></td>
 </tr>

总脂肪
饱和脂肪

谢谢。

您需要将
nutrition.toJSON()
克隆(nutrition.attributes)
传递到模板

否则,您将获得模型对象,而不是原始数据


要获取每个子属性,可以通过递归嵌套属性直接公开它们。否则,您可以通过
属性
对象直接访问它们。e、 g.
胆固醇.属性。

主干模型的属性不能直接在对象本身上访问。你应该使用

<%= totalFat.attributes.quantity %>


我已经将nutrition.toJSON()传递给模板,我将尝试克隆一个。这是因为子模型不是由
toJSON
解析的。您可以通过
属性
对象直接访问它们。e、 g.
胆固醇。属性。