【发布时间】:2015-08-14 03:31:09
【问题描述】:
我目前正在通过“你的第二个流星应用程序”按照自己的方式工作,并且到目前为止一直很享受。我创建的所有内容都有效,但我不明白为什么以下内容有效,但最后的代码无效。
模板
<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});
}
});
这给出了预期的结果。但是,我很好奇为什么以下内容不起作用,因为它似乎传递了完全相同的东西。与以下的唯一区别是:
- 将 Router.route('lists/:_id') 更改为 Router.route('lists/randomParm')
- this.params._id 到 this.params.randomParm
模板
<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});
}
});
我收到的信息是:
糟糕,客户端或服务器上似乎没有 url 的路由:“http://localhost:3000/list/TGM9dbRRtspyJy7AR”。
:_id 和 randomParm 不是保持相同的值吗?来自 HTML 链接的列表项的 id 被传递到路由 url 并用于进行 mongo 调用?当我访问相同的路由 URL 时,我不太明白 :_id 和 randomParm 有何不同。
【问题讨论】:
标签: meteor routing iron-router