0

我有以下模板

    <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}}

不像我期望的那样工作。我在这里做错了吗?

我的控制台日志显示比较是正确的。然而,条件括号内的日志永远不会被击中。:(

我的日志记录还显示计数器正在正确递增。

它可能非常明显,但我看不到它:(。

4

1 回答 1

1

您正在修改 window.counter,但在您的布尔测试中您没有查看 window.counter 的值。{{:counter}}并且{{if counter}}正在访问当前数据项的 counter 属性的值 - 这是对象{key: ..., prop:...},因为您在{{props ...}}.

基本上你不能从常规标签访问全局变量——只能从{{*...}}{{*:...}}

所以你可以做类似的事情{{* if (window.counter==4) { }} ... {{* } }}

http://www.jsviews.com/#allowcodetag

于 2015-06-22T10:35:54.703 回答