javascript - meteor 铁路由器 : custom id route

标签 javascript meteor iron-router

在 iron router 和从集合中传入自定义 id 时遇到一些问题。

一些上下文:我有一个“组”集合,其中除了自动生成的默认 _id 之外,它们都有自己的特殊 ID。我正在尝试制作一条类似于

的路线

"localhost:3000/groups/:groupid "

因此每个组都会有自己的带有组信息的渲染模板。

HTML:

<template name="Group">
<h1>Group: {{groupName}}</h1>
</template>

客户端: 从 session 中获取 groupid ... 我对此进行了测试并且它有效,因此从 session 中获取它不是问题,而是路由器

var groupid = Session.get('groupID');
Router.go('/groups/:_id',{_id: groupid})

路由器:

Router.route('/groups/:_id', function () {
this.render('Group', {
data: function () {
  return GroupsList.findOne({_id: this.params._id});
}
});
});

这将渲染一个以 groupid 作为参数而不是实际编号的路由


更新:

客户

Router.go('/groups/'+ groupid);

路由器

Router.route('/groups/:groupid', function () {
  this.render('Group', {
    data: function () {
      console.log(this.params.groupid)
      console.log(GroupsList.findOne({groupID: this.params.groupid}))
      return GroupsList.findOne({groupID: this.params.groupid});
    }
  });
});

这似乎使路由起作用,但它不会在模板中呈现组名

最佳答案

来自Iron Router Guide :

Now that we're using named routes in Router.go you can also pass a
parameters object, query and hash fragment options.

Router.go('post.show', {_id: 1}, {query: 'q=s', hash: 'hashFrag'});

然而,当您调用 Router.go 时,您传递的不是路由名称,而是 url。

试试这个:

Router.go('/groups/' + groupid);

Router.route('/groups/:_id', function () {
  this.render('Group', {
    data: function () {
      return GroupsList.findOne({groupid: this.params._id});
    }
  });
});

关于javascript - meteor 铁路由器 : custom id route,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32642664/

相关文章:

javascript - 如何访问 iframe 历史记录长度

javascript - 当用户使用 javascript 单击查看源时如何保护 img src 路径?

javascript - 使用服务器路由和 onBeforeAction 时出现异常

javascript - Meteor 中的 Google Analytics 与 Iron Router

Javascript 闭包对象生命周期

javascript - 文本框的返回类型

meteor - 发布用户所在组的项目(规划角色和发布)

html - 具有内联 block 子项的 div 与相同的 CSS 显示不一致

javascript - Meteor:Http 响应后,Http 调用在响应上返回未定义

javascript - Meteor 嵌套 View 和产量