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
.
获取密钥路径
我有以下模板:
{{#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
.