0

我有一个包含多维数组中的属性的模型。在视图的模板函数中,我想解压这个数组,但我不确定如何使用 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? 的值:

我要显示的价值!!!

4

2 回答 2

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.
于 2013-01-12T22:41:32.333 回答
1

除非我误解了你,否则<%= elementContent.elementContent %>应该做的伎俩。

于 2013-01-12T22:31:09.583 回答