为什么我不能引用父对象?



我遇到了这个奇怪但简单的问题。我在循环项目。每个系统都可以通过模态形式进行编辑,模态形式包含在名为"_editSystem">

的部分中。
{{#each project.systems}}
<tbody>
<td class="center"><h6>{{number}}</h6></td>
<td class="center"><h6>{{name}}</h6></td>
<td class="center">
<form class="" action="{{../project._id}}/{{_id}}/delete-system" method="POST" id="delete-system-form">
<input type="hidden" name="_method" value="PUT">
<button type="submit" class="btn btn-sm btn-danger">
<i class="fas fa-trash"></i> Delete </button>
</form>
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#editSystem-{{_id}}">
<i class="fas fa-edit"></i> Edit </button>
{{> _editSystem}}
</a>
</td>
</tr>

部分如下所示:

<div class="modal" id="editSystem-{{_id}}">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Edit system</h4>
</div>
<!-- Modal body -->
<div class="modal-body">
<form action="{{../project._id}}/{{_id}}/edit-system" method="POST">
<input type="hidden" name="_method" value="PUT">
<div class="row">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">System number</span>
</div>
<input type="text" class="form-control" name="number" id="number" value="{{number}}" placeholder="Enter system number">
</div>
</div>

<div class="row">
<div class="input-group pt-3">
<div class="input-group-prepend">
<span class="input-group-text">System name</span>
</div>
<input type="text" class="form-control" name="name" id="name" value="{{name}}" placeholder="Enter system name">
</div>
</div>
</div>

<!-- Modal footer -->
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
<input type="submit" value="Save" class="btn btn-primary">
</div>
</form>
</div>

问题是我不能引用{{../project._id}}。提交后,路径如下所示:

http://localhost: 3000/601ffda3d3ff7c3ec0ef891f/编辑系统

而正确的路径应该是这样的:

http://localhost: 3000/项目/60185936 bb697e1b9c7c6cb9/601ffda3d3ff7c3ec0ef891f/编辑系统

基本上,似乎我不能引用parent (project) id,而我的"delete"按钮工作正常…有人知道我哪里做错了吗?

我认为你没有做错任何事。

在不深入研究Handlebars源代码的情况下,我认为可以安全地假设分部不能访问与调用它的模板相同的上下文堆栈。部分参数的Handlebars文档指出,这些参数对于将数据从父上下文暴露给部分上下文特别有用,这一事实加强了这一假设。

所以似乎你需要将你的项目ID值作为参数传递给你的部分,如:

{{> _editSystem projectId=../project._id}}

您的部分将引用projectId参数:

{{projectId}}/{{_id}}/edit-system

我已经创建了一个小提琴供您参考。

相关内容

最新更新