【问题标题】:Is there any way to get an option tag value and pass it to a helper in handlebars?有没有办法获取选项标签值并将其传递给车把中的助手?
【发布时间】:2020-01-03 06:49:54
【问题描述】:

我正在使用 express 和车把,所以我有一个视图,当客户端从 select 标记中选择一个选项时,我想在给定事件的情况下显示一些信息,首先,我有一些关于它的问题:

  1. 是否可以获取选项标签值并将其发送到帮助程序?
  2. 有什么方法可以在 onChange 事件触发时调用帮助器?

我试图让帮助程序可以从视图的 html 中包含的脚本访问,但后来我意识到它与在 app.xml 中声明它是一样的。 还尝试使用 javascript 获取标记值并将其返回到 html,但这也不起作用。

<div class="col-sm-3">
    <div>
      <label for="zoneSelect"><span class="control-label badge badge-light">Zone monitoring</span></label>
    </div>
    <div>
      <select id="zoneSelect" class="custom-select" onchange="{{eventHandler selectedOptionValue }}">
        {{getZones zones}}
      </select>
     </div>
</div>
getZonas: function(zonas) {
    var str;

    zonas.forEach(element => {
      str += '<option value="'+element._id+'">' + element.nombre + '</option>';
    });
   return new Handlebars.SafeString(str);
}

所以,我的想法是从 select 中发送选定的选项,并将其发送给使用该信息的助手,如代码所示。

上面的助手是为选择下拉菜单构建选项标签,区域是从数据库中检索的 json 数据。

【问题讨论】:

    标签: javascript html node.js express handlebars.js


    【解决方案1】:

    看起来你搞砸了前端和后端。事件处理发生在前端。处理代码应该是您视图的一部分,而不是后端。

    <script>
      function onZoneSelect (value) {
          // Real action here
          console.log('ZONE', value);
      }
    </script>
    
    <select id="zoneSelect" class="custom-select" onchange="onZoneSelect(this.value)">
      <!-- This code could be generated on backend with handlebars -->
      <!-- BEGIN -->
      <option value="Z01">Zone 01</option>
      <option value="Z02">Zone 02</option>
      <option value="Z03">Zone 03</option>
      <option value="Z04">Zone 04</option>
      <option value="Z05">Zone 05</option>
      <!-- END -->
    </select>
    

    【讨论】:

      猜你喜欢
      • 2015-10-06
      • 2013-08-14
      • 1970-01-01
      • 1970-01-01
      • 2013-09-25
      • 2014-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多