2012-08-06 43 views
6

关于jsRender中{{for}}循环的问题。jsRender循环列表<string>

该演示展示了我们可以遍历复杂对象的集合,并显示其属性:

{{for languages}} 
    <div> 
     <em>{{>name}}</em> 
    </div> 
{{/for}} 

但如果我的languages只有List<string>什么?将不会显示{{>name}}。我们如何引用单个字符串值?

谢谢。

回答

11

您应该可以使用#data来访问循环中的单个字符串值。

+0

刚出于好奇,这是一个记录的方法吗? – 2015-12-16 04:21:54

+0

@mattlohkamp这里提到它[这里](https://www.jsviews.com/#paths)(“_'#data'是'#view.data'_”的简称)和[here](https ://www.jsviews.com/#[email protected])(“_a view有一个数据属性,它是用于渲染view_的当前数据上下文”) – 2016-11-04 20:18:48

+0

需要上下文中的示例 – 2017-03-08 22:31:45

18
{{#data}} 

没有为我工作。

事情似乎已经改变了,这是为我做:

{{>#data}} 
+1

认为“>”是隐含的。 – Syska 2012-08-30 22:14:56

+1

{{:#data}}如果您的字符串中有一些html标记... – r2b2s 2014-10-22 10:18:10

+0

@ r2b2s - 实际上它正好相反。 “每当呈现的数据不完全信任时,应该使用{{> ...}}标记来代替{{:...}},以防止HTML注入攻击。” - https://www.jsviews.com/#htmltag – 2017-03-08 22:39:24

0

另外,如果你想要做一些比较,你可以使用如下代码:

{{if #data == 'xxx' || #data == 'yyy'}} 
... 
{{/if}} 

在剧本。

2

你应该使用:

{{>#data}}{{>}} - (编码HTML)

{{:#data}}{{:}} - (非HTML)

例如:

比方说,你languages物体看起来像这样:

var languages = ['en', 'sp', 'zh'];

{{for languages}} 
    <div> 
     <em>{{>}}</em> 
    </div> 
{{/for}} 

会导致:

<div> 
    <em>en</em> 
</div> 
<div> 
    <em>sp</em> 
</div> 
<div> 
    <em>zh</em> 
</div> 

文档

#data

Difference between : and >