【问题标题】:Jsrender how to reference loop index in a if clauseJsrender如何在if子句中引用循环索引
【发布时间】:2018-03-01 16:57:19
【问题描述】:

我想检查 for 循环的第一遍。我已经尝试过 getIndex() 和设置变量,但两者都不起作用。我在搞砸什么?

{^{for samples}}
    {{setvar "itemIndex" #index+1 /}}  
    {{if ~getvar("itemIndex") = 0}}
      <input id="tab{{:#index+1}}" type="radio" name="tabs" checked>
    {{else}}
      <input id="tab{{:#index+1}}" type="radio" name="tabs">
    {{/if}}
    <label for="tab{{:#index+1}}">{{:group}}</label>
{{/for}}

var vars = {};
    $.views.tags({
        setvar: function(key, value) {
            if (value) {
                vars[key] = value;
            } else {
                vars[key] = this.tagCtx.render();
            }
            return "";
        }
});

    $.views.helpers({
  getvar: function(key) {
    return vars[key];
  }
})

【问题讨论】:

    标签: jsrender


    【解决方案1】:

    {{if ~getvar("itemIndex") = 0}} 是语法错误。测试是否等于 0 是 xxx === 0xxx == 0

    您应该使用简单的声明式方法,而不是尝试使用复杂的半程序化 setVar、getVar - 即使它有效,也将无法维护......

    只写:

    {^{for samples}}
      {{if #getIndex() === 0}}
        <input id="tab{{:#index+1}}" type="radio" name="tabs" checked>
      {{else}}
        <input id="tab{{:#index+1}}" type="radio" name="tabs">
      {{/if}}
      <label for="tab{{:#index+1}}">{{:group}}</label>
    {{/for}}
    

    或者,如果您愿意,只需 ...{{if #index === 0}}......{{if !#index}}...

    【讨论】:

      猜你喜欢
      • 2017-04-20
      • 1970-01-01
      • 1970-01-01
      • 2020-03-05
      • 1970-01-01
      • 2020-05-19
      • 1970-01-01
      • 2012-10-08
      • 1970-01-01
      相关资源
      最近更新 更多