我有一个包含多维数组属性的模型。在视图的模板函数中,我想解压缩这个数组,但我不知道如何用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
的价值?:
我想要展示的价值!!!
答案 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 %>
应该做到这一点。