我有以下模板:
{{#each Posts}}
{{#with { Post: this } }}
<h2 on-click="doSomething">{{Title}}</h2>
...
{{/with}}
{{/each}}
当我点击标题并调用doSomething时,我在事件密钥路径中得到"${{Post:Posts-0}}"
。但是我需要访问post keypath:&#34; Posts.0&#34;修改它的一些属性。实现这一目标的正确方法是什么?
答案 0 :(得分:1)
在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
获取密钥路径。