我需要在循环中保留一个“colcounter”变量,用于填充 jsrender 模板。
这是我的模板代码
<script id="datascapeTemplate" type="text/x-jsrender">
<div id="dsViewport">
<div class="ds-column" style="width:{{:(name.length*100)}}px;">
<h1 id="datascapeName">{{:name}}</h1>
<div><span id="dsToggle">toggle</span></div>
</div>
{{=colcounter}}
{{for sections}}
<div class="ds-section">
<h3>{{:label}}</h3>
<div class="ds-column" id="start">
{{for items}}
{{* if (colcounter > 4){
colcounter = 1;
}}
</div>
<div class="ds-column" id="start">
{{* } }}
{{*
if ( data.selected || datascape.showInvisible) { }}
<div class="ds-item {{* if (data.featured){ }} nowActive {{*} }} {{* if (data.active){ }} nowActiveRed {{*} }}" background="{{:background}}" bgcolor="#000000" fgcolor="#FFFFFF">
<div class="ds-item-container">
<h4>{{:title}}<br/>{{:time}}</h4>
<p><a item="{{:id}}" href="{{:url}}" class="itemLink">view file {{:colcounter}}</a></p>
</div>
</div>
{{* colcounter++; }}
{{* } }}
{{/for}}
</div>
{{* colcounter=1; }}
</div>
{{/for}}
{{* colcounter=1; }}
</div>
</script>
不幸的是,它在循环的第一次迭代中打印“错误:未定义 colcounter。”。之后它工作。
似乎我初始化 colcounter 变量的方式不起作用,但我找不到正确的方法。var colcounter =0
不起作用。
更新
- jsfiddle:http: //jsfiddle.net/ZX6Mk/
- colcounter 现在可以工作了。我在全局范围内声明了它。但我对 datascape.showInvisible 有疑问。它也会触发错误
Error: Cannot read property 'showInvisible' of undefined
。
谢谢你的时间,一个。