使用underscore.js显示多维数组

时间:2013-01-12 22:18:15

标签: jquery backbone.js underscore.js

我有一个包含多维数组属性的模型。在视图的模板函数中,我想解压缩这个数组,但我不知道如何用underscore.js来完成这个。我在谷歌上四处寻找,但我似乎无法找到一个直截了当的例子。

例如,这是一个多维数组:

array(
    "elementTag" => "li",
    "elementClass" => "dashboard",
    "elementContent" => array(
        "elementTag" => "a",
        "elementContent" => "The Value I want to Display!!!",
        "href" => "#home"
    )
)

如果我的模板:看起来像这样:

template: _.template('<<%= elementTag %> class="<%= elementClass %>">...</<%= elementContent %>>') 

如何显示elementContent的价值?:

  

我想要展示的价值!!!

2 个答案:

答案 0 :(得分:2)

JavaScript使用点表示法来访问对象的属性。

例如,您发布了数组,因为它将显示在php中,在JavaScript中您将创建该结构,如下所示:

var myObject = {
    "elementTag": "li",
    "elementClass": "dashboard",
    "elementContent": {
        "elementTag": "a",
        "elementContent": "The Value I want to Display!!!",
        "href": "#home"
    }
}

然后,您可以将其传递给骨干模型上的构造函数,这是集合的内容 当你调用fetch / reset等时,会在内部执行。

var model = new ElementModel(myObject)

model.get('elementClass') // returns "dashboard"
model.get('elementContent') // returns the element content object
model.get('elementContent').elementTag // returns the "a"

var myObject = model.toJSON() // returns the object in the same format as above

myObject.elementClass // "dashBoard"
myObject.elementContent.elementTag // "a"

通常在主干中,您将model.toJSON()的结果传递给下划线模板,以便@fencliff正确回答,您的对象的所有属性都可以在模板中以格式

获得
<%= elementTag %>
<%= elementClass %>
<%= elementContent.elementContent %>
// etc.

答案 1 :(得分:1)

除非我误解你,否则<%= elementContent.elementContent %>应该做到这一点。