You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Handlebars循环外的博客ID传递到each循环内的表单中

Handlebars循环内访问外层变量解决方案

Handlebars 中{{#each}}遍历块会切换当前上下文到正在遍历的子项,所以默认无法直接访问外层作用域的变量,你可以通过../操作符回溯父级作用域获取外层的blogs._id,具体修改方式如下:

实现方案

方式1:将博客ID拼接在请求路径中

直接修改删除评论表单的action属性,通过路径参数传递博客ID:

<!-- 在{{#each blogs.comments}}块内 -->
<form method="POST" action="/admin/delete-comment/{{../blogs._id}}">

后端可将路由配置为/admin/delete-comment/:blogId,直接从路径参数中提取博客ID,配合表单提交的邮箱参数即可匹配到要删除的对应评论。

方式2:通过隐藏表单字段传递参数

如果不想把参数放在URL路径中,可以在表单内新增隐藏的输入字段传递博客ID:

<!-- 在{{#each blogs.comments}}块内 -->
<form method="POST" action="/admin/delete-comment">
  <!-- 新增隐藏字段传递外层博客ID -->
  <input type="hidden" name="blogId" value="{{../blogs._id}}">
  <div class="form-group">
    <label for="exampleInputEmail1"></label>
    <input type="email" class="form-control" id="myInput" readonly aria-describedby="emailHelp" placeholder="Enter email" value="{{this.email}}" name="email">
  </div>
  <button type="submit" class="btn btn-danger">delete</button>
</form>

后端直接从POST请求的请求体中获取blogId和email两个参数,即可完成精准删除。

补充说明:../是Handlebars的父级作用域访问符,如果存在多层嵌套的块级作用域,可以叠加使用../向上回溯对应的层级获取目标变量。


内容的提问来源于stack exchange,提问作者ʙɪᴍᴀʟ ʙᴏʙy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 13:06:06