从骨干视图模板中访问子对象/模型的变量

时间:2013-01-15 23:08:58

标签: javascript backbone.js underscore.js backbone-views

根据我的服务器给出JSON响应,如下所示:

{
"products" : [
    {
        "Product" : {
            "id" : "122",
            "name" : "product X",
            "price" : "19.99",
        },
        "Picture" : [
            {
                "product_id" : "122",
                "id" : "145",
            },
            {
                "product_id" : "122",
                "id" : "146",
            },
            {
                "product_id" : "122",
                "id" : "147",
            }
        ]
    }
]
}

我将创建一个骨干模型,将其传递给骨干视图。在我的View模板中,我可以通过以下方式访问产品名称:

 <%= Product.name %>

并且所有工作都按预期进行。但是让我说我​​想获得第一张图片的id。我试过了:

<%= Picture.0.id %>

但是我在控制台中收到以下错误:

Uncaught SyntaxError: Unexpected number 

简而言之,如何从产品模板访问与我的产品相关的各种图片的属性。如果重要的话,我正在使用下划线模板。

1 个答案:

答案 0 :(得分:2)

正常的javascript数组索引器语法[index]将起到作用:

<%= Picture[0].id %>

修改:下划线接受<% %>标记内的任何旧javascript,因此如果要检查数组是否为空,则可以使用标准_.isEmpty执行此操作方法:

<% if(!_.isEmpty(Picture)) { %>
   <%= Picture[0].id %>
<% } else { %>
   No picture
<% } %>

或者您喜欢的任何其他JavaScript构造。 See docs了解更多信息。