我目前正在努力工作,#34;你的第二个流星应用"到目前为止一直很享受。我创建的所有内容都有效但我不明白为什么以下内容有效,但最后的代码却没有。
模板
<template name="list">
<ul>
{{#each list}}
<li><a href="/list/{{_id}}">{{name}}</a></li>
{{/each}}
</ul>
</template>
<template name="listPage">
<h2>Tasks: {{name}}</h2>
</template>
路线
Router.route('/list/:_id', {
template: 'listPage',
data: function(){
var currentList = this.params._id;
return Lists.findOne({_id: currentList});
}
});
这给出了预期的结果。但是,我很好奇为什么以下不会起作用,因为它似乎正在传递完全相同的东西。与以下内容的唯一区别是:
模板
<template name="list">
<ul>
{{#each list}}
<li><a href="/list/{{_id}}">{{name}}</a></li>
{{/each}}
</ul>
</template>
<template name="listPage">
<h2>Tasks: {{name}}</h2>
</template>
路线
Router.route('/list/randomParm', {
template: 'listPage',
data: function(){
var currentList = this.params.randomParm;
return Lists.findOne({_id: currentList});
}
});
我得到的信息是:
哎呀,看起来客户端或服务器上没有路由的网址:&#34; http://localhost:3000/list/TGM9dbRRtspyJy7AR。&#34;
不是:_id和randomParm持有相同的值吗?来自HTML链接的列表项的ID是否被传递到路由URL并用于进行mongo调用?我不太明白:当我点击相同的路由URL时,_id和randomParm是不同的。
答案 0 :(得分:3)
Param与:
所以你的路线将是
Router.route('/list/:randomParm', {
如果此参数是可选的,请在
后面留下?
Router.route('/list/:randomParm?', {