【问题标题】:Meteor.js Iron Routing :_id dynamic route confusionMeteor.js Iron Routing :_id 动态路由混淆
【发布时间】: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


    【解决方案1】:

    参数应该是:

    所以你的路线将是

    Router.route('/list/:randomParm', {
    

    如果这个参数是可选的,那么在之后留下?

    Router.route('/list/:randomParm?', {
    

    【讨论】:

      猜你喜欢
      • 2015-02-16
      • 2014-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多