jsrender テンプレートを埋めるために使用されるループ内に「colcounter」変数を保持する必要があります。
これが私のテンプレートコードです
<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
。
お時間をいただきありがとうございます。