我正在尝试从博客列表链接到博客详细信息页面,但该链接不起作用。我在这做错了什么?链接中的this._id是正确的ID。 这是我的路线
this.route('blogdetail', {
path: '/groupsmain/:_id/blogs/:paramOne',
template:'groupdetail',
yieldTemplates: {
'blogdetail': {to: 'dynamiccontent'}
},
controller: blogdetailController
});
博客列表的网址是
http://localhost:3000/groupsmain/NQxvBfeNQE875HDRR/blogs
这是我的博客详情链接
<h3><a href="{{pathFor 'blogdetail' paramOne=this._id}}">{{this.title}}</a></h3>
答案 0 :(得分:2)
pathFor
从当前数据上下文中获取参数,而不是从传递给它的参数中获取参数。因此,您需要使用#with
帮助程序更改上下文:
<a href="{{#with _id=_id paramOne=this._id}}{{pathFor 'blogDetail'}}{{/with}}">
答案 1 :(得分:0)
查看当前的Iron Router's code(版本0.9.1),看起来pathFor
帮助程序仅在您不在助手调用中明确传递任何参数时才使用上下文。这可能是一个错误,因为文档示例显示您可以混合两种情况。
因此,您必须在pathFor
帮助程序中传递这两个参数,或者在上下文中设置这两个值。您只在帮助程序中传递paramOne
并期望Iron Router在其他位置获取_id
参数。试试这个:
<a href="{{pathFor 'blogdetail' _id=whicheverIdYouNeedHere paramOne=_id}}">{{title}}</a>
如果whicheverIdYouNeedHere
实际上是父上下文的属性,则可以使用..
关键字获取它。你最终会得到类似的东西:
<a href="{{pathFor 'blogdetail' _id=../nameOfThePropertyFromTheParentContext paramOne=_id}}">{{title}}</a>