With 子句更改键路径

With clause changes keypath

我有以下模板:

{{#each Posts}}
{{#with { Post: this } }}
  <h2 on-click="doSomething">{{Title}}</h2>
  ...
{{/with}}
{{/each}}

当我点击 header 并调用 doSomething 时,我在事件键路径中得到 "${{Post:Posts-0}}"。但是我需要访问 post keypath: "Posts.0" 来修改它的一些属性。实现该目标的正确方法是什么?

在 Ractive 中使用 {{#with { a: b } }} 块进行别名有一些限制,因为它不是真正的别名,它只是创建一个带有对象文字的表达式。这是一个需要的增强功能来提供像 {{#each Post in Posts}}{{#each Posts as Post}}.

这样的真正的别名

就您今天能做的,您可以将密钥路径添加到 with 块:

{{#with { Post: this, keypath: @keypath } }}

然后传入:

  <h2 on-click="doSomething:{{keypath}}">{{Title}}</h2> 

或通过this.event.context.keypath进入活动。请参阅 http://jsfiddle.net/w0npbnrz/ 以了解这两个操作。

您也可以使用 {{#each Posts:p}} 在这种情况下您可以通过 'Posts.' + this.event.index.p.

获取密钥路径