Che*_*het 29 handlebars.js meteor meteorite iron-router
我有一个带参数的简单路线:
this.route('article', {
path: '/article/:_id',
data: function() { return Articles.findOne(this.params._id); }
});
Run Code Online (Sandbox Code Playgroud)
我想在这里使用带有_id的pathFor把手助手:
{{#each articles}}
<li><a href="{{pathFor 'article' _id}}">{{title}}</a></li>
{{/each}}
Run Code Online (Sandbox Code Playgroud)
这不适用于将_id标记传递到url中...
Che*_*het 61
<li><a href="{{pathFor 'article' _id=this._id }}">{{title}}</a></li>
Run Code Online (Sandbox Code Playgroud)
这就是你传递参数的方式
cma*_*her 13
在您的示例中,您不需要传递任何参数.该pathFor
助手将自动使用当前数据上下文,并抓住来自该对象的属性.由于您有一个{{#each articles}}
迭代器,因此当前数据上下文pathFor
将设置为列表中的当前项(文章).文章对象应该有一个_id
属性,因此路径助手将起作用.如果要更改数据上下文,可以将另一个对象作为第一个参数传递给pathFor
帮助程序,或者可以使用{{#with anotherDataContextObject}}
块帮助程序.
在v0.5.4中,您还可以使用Handlebars哈希键值来替换上下文对象.在开发分支中,这不再是真实的.如果在Handlebars帮助程序中提供键值对作为参数,那么它们将附加到查询字符串.这里举例说明dev分支的变化示例:
{{pathFor 'article' article q=some+query}}
//=> "/article/abcd/?q=some+query
Run Code Online (Sandbox Code Playgroud)
要么
{{#with article}}
{{pathFor 'article' q=some+query}}
//=> "/article/abcd/?q=some+query
{{/with}}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19974 次 |
最近记录: |