动态变量名称绑定

时间:2015-03-07 10:20:06

标签: ractivejs

我遇到与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}})。有没有办法实现这个目标?

1 个答案:

答案 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