尝试在 JsRender 中使用 allowCode 和 {{* window.counter++ }} 并使用布尔测试测试结果
Trying to use allowCode in JsRender with {{* window.counter++ }} and test the result using boolean test
我有以下模板
<script type="text/x-widget-template" id="genericRowValues">
{{* window.counter = 0}}
{{props}}
{{* console.log(counter == 0)}}
{{if counter == 0}}
{{* console.log("WHY YOU NO WORK!")}}
<div class="row">
{{/if}}
<div class="col-lg-4">
<div class="input-group" style="margin-bottom:5px;">
<b>{{>key}}</b>
<div class="well well-sm">
{{>prop}}
</div>
</div>
</div>
{{if counter == 4}}
{{* counter = 0}}
</div>
{{/if}}
{{* counter++ }}
{{/props}}
</script>
我正在通过创建我的模板。
var templateSource = $.templates(
templateName,
{
markup: '#' + templateName,
allowCode: true
}
);
for (var i = 0; i < dataSource.length; i++) {
var template = templateSource.render(dataSource[i]);
我也在页面加载时调用它。
$.views.settings.allowCode = true;
声明:
{{if counter == 0}}
并且:
{{if counter == 4}}
没有像我预期的那样工作。我是不是做错了什么?
我的控制台日志显示比较是正确的。然而,条件括号内的日志永远不会被命中。 :(
我的日志记录还显示计数器正在正确递增。
它可能是非常明显的东西,但我看不到它:(。
您正在修改 window.counter,但在布尔测试中您没有查看 window.counter 的值。 {{:counter}}
和 {{if counter}}
正在访问当前数据项的计数器 属性 的值 - 这是对象 {key: ..., prop:...}
因为您在 {{props ...}}
的上下文中.
基本上你不能从常规标签访问全局变量 - 只能从 {{*...}}
和 {{*:...}}
所以你可以做类似 {{* if (window.counter==4) { }} ... {{* } }}
的事情。
我有以下模板
<script type="text/x-widget-template" id="genericRowValues">
{{* window.counter = 0}}
{{props}}
{{* console.log(counter == 0)}}
{{if counter == 0}}
{{* console.log("WHY YOU NO WORK!")}}
<div class="row">
{{/if}}
<div class="col-lg-4">
<div class="input-group" style="margin-bottom:5px;">
<b>{{>key}}</b>
<div class="well well-sm">
{{>prop}}
</div>
</div>
</div>
{{if counter == 4}}
{{* counter = 0}}
</div>
{{/if}}
{{* counter++ }}
{{/props}}
</script>
我正在通过创建我的模板。
var templateSource = $.templates(
templateName,
{
markup: '#' + templateName,
allowCode: true
}
);
for (var i = 0; i < dataSource.length; i++) {
var template = templateSource.render(dataSource[i]);
我也在页面加载时调用它。
$.views.settings.allowCode = true;
声明:
{{if counter == 0}}
并且:
{{if counter == 4}}
没有像我预期的那样工作。我是不是做错了什么?
我的控制台日志显示比较是正确的。然而,条件括号内的日志永远不会被命中。 :(
我的日志记录还显示计数器正在正确递增。
它可能是非常明显的东西,但我看不到它:(。
您正在修改 window.counter,但在布尔测试中您没有查看 window.counter 的值。 {{:counter}}
和 {{if counter}}
正在访问当前数据项的计数器 属性 的值 - 这是对象 {key: ..., prop:...}
因为您在 {{props ...}}
的上下文中.
基本上你不能从常规标签访问全局变量 - 只能从 {{*...}}
和 {{*:...}}
所以你可以做类似 {{* if (window.counter==4) { }} ... {{* } }}
的事情。