2012-08-06 72 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 >