javascript - Iron Router,尝试创建一个联系人应用程序,为每个联系人提供单独的页面

标签 javascript mongodb meteor iron-router

我试图让每个联系人在集合中都有一组特定的值,例如名字、姓氏和电子邮件。我希望每次从列表中选择一个联系人时,它都会链接到第二页,其中显示该联系人的所有详细信息。

这是我放置在 Contact.js 文件顶部的代码...

Router.route('/post/:_id', function () {
    this.render('Post', {
  data: function () {
    return Contax.findOne({_id: this.params._id});
  }
  });
});

这是选择特定联系人时的事件处理程序...

Template.aCont.events({
    "click #view": function() {
      Router.go('/post/:' + this._id);
    }
  });

这是我的相关 html

<template name="contDeets">
  <ul class="list-group">
    <li class="list-group-item">{{this.firstName}}, {{this.lastName}}</li>
  </ul>
</template>

<template name="Post">
  {{#contentFor "headerButtonLeft"}}
    {{>ionNavBackButton}}
  {{/contentFor}}
  {{#contentFor "headerTitle"}}
    <h1 class="title">Contacts</h1>
  {{/contentFor}}
  {{#contentFor "headerButtonRight"}}
  <a id="add" class="button button-clear button-positive" href='/add'>Add</a>
  {{/contentFor}}
  {{#ionView}}
    {{#ionContent}}
      <div id="contactList2">
        {{> contDeets}}
      </div>
     {{/ionContent}}
  {{/ionView}}
</template>

我的代码有什么问题吗?它正在打开一个具有正确网址的新页面,但是它应该显示的信息...{{this.firstName}}, {{this.lastName}}...除了逗号之外根本不存在。

最佳答案

路由声明中的冒号是用来标记参数的。调用路由时,您不能包含它,而只需提供您想要的参数值:

Template.aCont.events({
    "click #view": function() {
      Router.go('/post/' + this._id);
    }
});

其他一切看起来都不错。

关于javascript - Iron Router,尝试创建一个联系人应用程序,为每个联系人提供单独的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33310640/

相关文章:

javascript - MongoDB 中 .eval 的智能替代方案

javascript - 根据MongoDB中另一个集合中的数据查询一个集合中的数据

meteor - 部署到 Meteor.com 有哪些限制?

Javascript 函数改变 NCS 颜色

javascript - 使用此函数在回调中调用其他函数

javascript - 如何抓取有事件的链接内的数据?

MongoDB - 如何在集合和嵌入文档中查找相等值

javascript - 如何在 highcharts 中加载 CSV 文件以外的内容?

javascript - METEOR 更改选择标签颜色

javascript - 分离客户端和服务器代码的文件夹后的发布/订阅