考虑以下代码。
{{#each assignments}}
{{#with eachClientDetails}}
{{#quickRemoveButton collection=assignment _id=this._id }}
Delete
{{/quickRemoveButton}}
{{/with}}
{{/each}}
在上面的代码中,我正在迭代每个assignment
,每个assignment
都有一个Client
详细信息。每个Client
详细信息我都会添加删除按钮。
助手:
eachClientDetails(){
var client = Clients.find({_id: this.clientId}).fetch()[0];
console.log(client);
return client;
}
但问题是,在为_id
的{{1}}分配属性时,我只能从当前上下文中分配数据(即quickForm
)。我只需要访问this._id
的上下文(希望像assignment
)。但我得到以下错误,
_id=../_id
是否可以使用任何助手和内容来获取父模板Can only use `this` at the beginning of a path.
Instead of `foo.this` or `../this`, just write `foo` or `..`.
答案 0 :(得分:1)
您可以使用#each in
和#let
代替#each
和#with
解决覆盖上下文的问题:
{{#each assignment in assignments}}
{{#let client=(eachClientDetails assignment)}}
{{#quickRemoveButton collection=assignment _id=assignment._id }}
Delete {{client.name}}
{{/quickRemoveButton}}
{{/let}}
{{/each}}
此处,添加了{{client.name}}
只是为了展示如何访问client
的字段。
帮助者的代码:
eachClientDetails(assignment){
var client = Clients.findOne({_id: assignment.clientId});
console.log(client);
return client;
}