在Mustache.js / ICanHaz中从内部数组访问外部数组值
Accessing outer array values from inner array in Mustache.js / ICanHaz
我有以下JSON,本质上是一个对象的外部数组(Outer
),每个对象可以包含一个对象的内部数组(Inner
):
{ "Outer": [{"OuterName": "OuterName1",
"Inner": [{"InnerName": "InnerName1"},
{"InnerName": "InnerName2"}]
},
{"OuterName": "OuterName2",
"Inner": [{"InnerName": "InnerName3"},
{"InnerName": "InnerName4"}]
}]
}
我有一个ICanHaz模板,构建一个无序列表。每个Inner
数组中的每个对象必须有一个列表项。
<script type="text/html" id="tmp">
<ul>
{{#Outer}}
{{#Inner}}
<li>
{{OuterName}} - {{InnerName}}
</li>
{{/Inner}}
{{/Outer}}
</ul>
</script>
问题是,似乎不可能从#Inner
条件中引用OuterName
。因此输出如下所示:
- InnerName1
- InnerName2
- InnerName3
- InnerName4
当我期待的时候:
OuterName1 - InnerName1
OuterName1 - InnerName2
OuterName2 - InnerName3
OuterName2 - InnerName4
有谁知道我怎么解决这个问题吗?或者我只需要重组我的JSON,使Inner
数组也包含OuterName
?
这是有效的。问题很可能出在你的库版本中。
ICanHaz与Mustache.js v0.4.0一起发布。目前的版本是0.7.2,已经发布了8个版本,过去了16个月。切换到ICanHaz-no-mustache.js
,并带来你自己的小胡子。这应该能解决问题。
下面是你的模板在最新版本的Mustache.js下的工作图:
var tpl = $('#tpl').html();
var data = { "Outer": [{"OuterName": "OuterName1",
"Inner": [{"InnerName": "InnerName1"},
{"InnerName": "InnerName2"}]
},
{"OuterName": "OuterName2",
"Inner": [{"InnerName": "InnerName3"},
{"InnerName": "InnerName4"}]
}]
};
$('#output').html(Mustache.to_html(tpl, data));
我不熟悉你的模板,但是像这样的怎么样:
<script type="text/html" id="tmp">
<ul>
{{#Outer}}
<li>
{{OuterName}} - {{#Inner}}{{InnerName}}{{/Inner}}
</li>
{{/Outer}}
</ul>
</script>
我很抱歉,如果这不起作用,这似乎是一个很好的机会,我只是屠宰语法。:)
相关文章:
- 访问JSON对象内部的数组元素
- 将当前用户的 ID 推送到 meteorjs 中集合/文档的内部数组
- 正在更新mongod中两个对象内部的数组
- 如何在循环数组内部推送变量值
- 在Javascript数组内部调用URL变量
- 如何在Mongoose中从多个数组更新数组内部的值
- 创建带有回调的动态 JSON 数组(内部闭包问题)
- 循环数组内部和数组
- 如何为自定义jQuery函数制作数组内部的数组数据
- 数组内部的Javascript数组-如何调用子数组名称
- 有没有一种方法可以将一个元素从二维数组内部移动到数组中的另一个位置,而不移动其他元素?
- 在数组内部迭代数组
- JSON -需要javascript数组内部的数组和编码JSON
- 检查数组是否在数组内部
- 试图通过Json对象,有更多的对象与对象数组内部循环
- 按数组内部值过滤数组
- 是否可以在数组内部和数组之间来回移动对象
- 当数组内部的某个可观察数组项发生更改时,更新父挖空可观察数组项
- 为什么for.in()循环不返回数组内部的对象
- 不能修改原型数组内部