javascript - 如何在 Jsrender 模板中使用 javascript 变量

标签 javascript jsrender jsviews

我是 JsRender 新手,请帮助我解决以下问题...

我遇到了一个愚蠢的问题,我花了很多时间但找不到相关文章来寻求帮助。

在我的里面 我创建了一个 javascript 变量 (s_name),并希望在 for 循环中使用它作为单选按钮的名称。但我无法这样做。请在下面找到代码..需要你们的帮助..

{{for Product}}

            <div class="leftOptInner1 my_left_{{:Id}}" id="my_left_inneropt">

                <div class="leftIconInner1 my_{{:Id}}" name="{{:Name}}" id="{{:Id}}" >
                    <!-- <div class="leftIcon1 designer_left_icon "> -->
                    <div class="designer_left_icon ">

                        <img src="{{:ImageSource}}" width="100%" height="100%">
                    </div>
                    <p >{{:Name}}</p>
                    <span class="name" id="{{:Id}}"></span>
                    {{:"<scr" + "ipt type=&quot;text/javascript&quot;>"}}
                        var s_name = "{{:Name}}";
                        alert(s_name); 
                       // s_name.render();

                    {{:"</scr" + "ipt>"}}

                </div>

                    <div class="rightIconOptOuter" style="width: 100% !important; float: left;">
                  {{for Options}}

                    {{for Features}}

                    <div class="rightIconOptInnerBox">

                        <div class="tick">
                              <div class="single_set_designer col-md-2">

                      <div class="fav-heart1 fav-heart_deisgner" id="{{:Id}}">
                      <span class="name" id="{{:Id}}"></span>
                          <div class="checkbox" id="{{:Id}}">
                                      <label>
                                        <input class="myChk designer_chk" type="checkbox" id="{{:Id}}"  data-textronic_id="{{:Id}}" data-textronic_name="{{:Name}}" name="check[]" />
                                      </label>
                                    </div>
                        </div>


                      <div class="element_wrp text-center">
                        <img src="{{:ImageSource}}">
                        <p>{{:Name}}</p>
                        <div class="price_hide">
                        <a class="show_price" id="{{:Id}}"><i class="fa fa-inr" aria-hidden="true"></i> Add Cost</a>
                          <input class="cost_associated form-control text-center showdesign{{:Id}}" type="text" value="" name="cost" style="display: none;">
                      </div>


                       <input type="radio" name="WE_WANT_s_name_HERE" id="{{:Id}}" value="{{:Name}}">
                      </div>
                    </div>
                        </div>
                    </div>




                {{/for}}


                  {{/for}} 
                       {{/for}} //products

最佳答案

助手

您可以将 s_name 变量作为辅助函数传递。

参见http://www.jsviews.com/#helpers

例如:

var helpers = {
    s_name_Hlpr: s_name,
  ...};

myTmpl.render(data, helpers);

然后写:

<input type="radio" name="{{:s_name_Hlpr}}" ... />

允许代码

或者(但最好避免)您可以在模板中允许代码访问:

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

第一组:

$.views.settings.allowCode(true);

然后写:

<input type="radio" name="{{*:s_name}}" ... />

上下文参数

也就是说,您似乎正在尝试从数据初始化您的 s_name。

var s_name = "{{:Name}}";

您可能确实想传递产品的名称,您可以这样做:

{{for Product}}
  ...
  {{for Options ~prod_name=Name}}
    ...
    {{for Features}}
      ...
      <input type="radio" name="{{:~prod_name}}" .../>
      ...
    {{/for}} 
    ...
  {{/for}} 
  ...
{{/for}} //products

(参见 http://www.jsviews.com/#contextualparams )

关于javascript - 如何在 Jsrender 模板中使用 javascript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45077725/

相关文章:

javascript - 根据谷歌表格脚本中的唯一ID同步行数据

javascript - 将数组的每个项目与另一个数组的项目连接

Javascript:更改div内所有图像的背景

javascript - 如何通过数据链接添加或编辑数组中的数据?

javascript - 如何在没有 JQuery 的情况下正确实现无限滚动的 AngularJS 表?

javascript - 如果 JSON 属性名称包含句号,则模板失败

javascript - jsrender 模板中的 if 条件

css - JsViews css-tag 中的逻辑

javascript - jsViews/jsRender 与模板内的丰富表达式

jquery - JSVIEW 数据链接模板以维护 UI 上的 x 和 y 索引