与在jsrender模板

问题描述:

在我工作的情况下我在JS使用下面的代码片段与渲染模板循环:与在jsrender模板

{{:#data['" + columnName + "']}} 

,这将返回该值:

[object Object],[object Object] 

如何使用for循环在js渲染模板内从此数组对象[object Object],[object Object]获取特定属性?

+0

你能提供你的代码(也许是的jsfiddle),我们可以用它来多看一点这是怎么回事的简化版本? –

您可以使用{{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>"