我有一个骨干型营养项目,它包含数量、百分比和计量单位。例如
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>谢谢。
发布于 2013-09-06 16:42:03
您需要将nutrition.toJSON()或_.clone(nutrition.attributes)传递给模板。
否则,您将得到模型对象,而不是原始数据。
要获取每个子属性,您可以通过嵌套属性递归直接公开它们。否则,您可以通过attributes对象直接访问它们。例如cholesterol.attributes.<attr>
发布于 2013-09-06 16:43:52
主干模型的属性不能在对象本身上直接访问。你应该用
<%= totalFat.attributes.quantity %>https://stackoverflow.com/questions/18661836
复制相似问题