我遇到与this one类似的问题。但在我的情况下,如果我这样做,就会有动态数量的对象(帖子)绑定:
{{#each Posts}}
...
{{#each Comments}}
{{/each}}
<form> /* new comment is added here */
<textarea name="text" value="{{newCommentText}}" />
<input type="submit" disabled="{{!newCommentText}}" />
</form>
{{/each}}
所有textareas的值都是同步的。我需要的是以某种方式为每个表单指定一个唯一的变量名称(即{{PostId_newCommentText}})。有没有办法实现这个目标?
答案 0 :(得分:3)
您可以使用restricted references将每个新评论添加到相应的Post
:
{{#each Posts}}
<form>
<!-- .newCommentText === this.newCommentText -->
<textarea name="text" value="{{.newCommentText}}" />
<input type="submit" disabled="{{!.newCommentText}}" />
</form>
{{/each}}
另一种选择是使用@index
并将所有新注释存储在单独的数组中:
{{#each Posts}}
<form>
<textarea name="text" value="{{NewComments[@index]}}" />
<input type="submit" disabled="{{!NewComments[@index]}}" />
</form>
{{/each}}
现场演示here。