与在jsrender模板
问题描述:
在我工作的情况下我在JS使用下面的代码片段与渲染模板循环:与在jsrender模板
{{:#data['" + columnName + "']}}
,这将返回该值:
[object Object],[object Object]
如何使用for循环在js渲染模板内从此数组对象[object Object],[object Object]
获取特定属性?
答
您可以使用{{for}}
遍历数组。事情是这样的:
<ul>
{{for columnName}}
<li>{{:Property}}</li>
{{/for}}
</ul>
在循环中,你的基地范围内自动成为数组中的特定对象,这样你就可以输出任何对象的属性直接与{{:Property}}
。
答
对于迭代数组,见http://www.jsviews.com/#fortag。 (页面中较低显示标签用于循环数组)。
此外,关于你的模板例如一些评论:
它看起来像您使用生成的模板,用插入columnName
参数的值。所以,如果columnName
具有价值"fooColumn"
模板片段是{{:#data['fooColumn']}}
- 这实际上相当于{{:#data.fooColumn}}
,这可以进一步简化为{{:fooColumn}}
。
(我假设的columnName
值是一个有效的使用JavasScript名字 - 不喜欢"foo column"
,比如说一些值,以空白 - 在这种情况下,你的语法确实是合适的)现在
,如果#data.fooColumn
是对象的阵列的每一个具有一个'itemProperty'
属性,然后使用{{for}}
迭代阵列上方看起来像这样(在大卫病区的例子略有变化):
<ul>
{{for fooColumn}}
<li>{{:itemProperty}}</li>
{{/for}}
</ul>
,使用COLUMNNAME的所产生的形式将是
"<ul>{{for " + columnName + "}}<li>{{:itemProperty}}</li>{{/for}}</ul>"
你能提供你的代码(也许是的jsfiddle),我们可以用它来多看一点这是怎么回事的简化版本? –