如何在Jquery模板中分配局部变量

时间:2019-02-28 13:26:07

标签: javascript jquery jquery-templates

以下,我尝试使用Jquery模板打印替换的项目。在那里,我想设置一个变量 partHasBeenReplaced ,以后我可以用它来打印标签并关闭<span>元素。

  1. 如何在此处设置变量?
  2. 如何查找“ REPLACEMENT”类型的最后一个元素?它可能不是数组的最后一个元素。

                {{each(i,ref) productReferences}}
                        {{if ref.referenceType == 'REPLACEMENT'}}
                            {{partHasBeenReplaced = 'true'}}
                        {{/if}}
                {{/each}}
    
                {{if partHasBeenReplaced == 'true'}}
                    <span class="text-danger font-weight-bold pt-2">
                        This item has been replaced with:
                {{/if}}
    
                {{each(i,ref) productReferences}}
                        {{if ref.referenceType == 'REPLACEMENT'}}
                            {{= ref.target.code}} ,
                        {{/if}}
                {{/each}}
    
                {{if partHasBeenReplaced == 'true'}}
                    </span>
                {{/if}}
    

2 个答案:

答案 0 :(得分:0)

为了使用此类模板将数据分配给元素,最好使用属性。我们可以使用JavaScript访问create / update / remove属性。

例如,如果您要为<span>添加数据,则可以使用-

<span id="mySpan" class="text-danger font-weight-bold pt-2" partreplaced="{{partHasBeenReplaced}}" ></span>

可以使用以下方法在JavaScript中对其进行访问-

let span = document.querySelector("#mySpan");
let partreplaced = span.getAttribute('partreplaced');

console.log(partreplaced); //will print which was set in that attribute using the templating engine.

答案 1 :(得分:0)

没有像在JSTL中那样设置本地变量的简单解决方案。因此,我要做的是使用JS填充最终标记(如 partHasBeenReplaced )并将其设置为数据,然后再将其传递给Jquery模板。这样我就可以直接在模板中使用变量。