有什么方法可以获取选项标签值并将其传递给车把中的助手吗?
Is there any way to get an option tag value and pass it to a helper in handlebars?
我正在使用 express 和 handlebars,所以我有一个视图,我想在给定事件时显示一些信息,当客户端 select 来自 select 的选项时 标签,首先,我有一些问题:
- 是否可以获取选项标签值并将其发送到助手中?
- 有什么方法可以在onChange事件触发时调用helper吗?
我试图让助手可以从视图 html 中包含的脚本访问,但后来我意识到这与在应用程序上声明它是一样的。
还尝试使用 javascript 和 return 获取标签值到 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 发送 selected 选项,并将其发送给使用该信息的助手,如代码所示。
上面的助手是为 select 下拉菜单构建选项标签,区域是 json 从数据库中检索的数据。
看起来你搞砸了前端和后端。事件处理发生在前端。处理代码应该是您视图的一部分,而不是后端。
<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>
我正在使用 express 和 handlebars,所以我有一个视图,我想在给定事件时显示一些信息,当客户端 select 来自 select 的选项时 标签,首先,我有一些问题:
- 是否可以获取选项标签值并将其发送到助手中?
- 有什么方法可以在onChange事件触发时调用helper吗?
我试图让助手可以从视图 html 中包含的脚本访问,但后来我意识到这与在应用程序上声明它是一样的。 还尝试使用 javascript 和 return 获取标签值到 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 发送 selected 选项,并将其发送给使用该信息的助手,如代码所示。
上面的助手是为 select 下拉菜单构建选项标签,区域是 json 从数据库中检索的数据。
看起来你搞砸了前端和后端。事件处理发生在前端。处理代码应该是您视图的一部分,而不是后端。
<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>