Meteor 数据上下文无法通过Iron路由器连接到模板

Meteor 数据上下文无法通过Iron路由器连接到模板,meteor,iron-router,Meteor,Iron Router,我正在开发一个示例应用程序,它将充当日志。因此,我需要创建动态路由 我在router.js中的代码如下所示: Router.route(':month/:day/:year', { name: 'listView', data: function () { var month = this.params.month; var day = this.params.day; var year = this.params.year; return Links.findO

我正在开发一个示例应用程序,它将充当日志。因此,我需要创建动态路由

我在router.js中的代码如下所示:

Router.route(':month/:day/:year', {
name: 'listView',
data: function () {
    var month = this.params.month;
    var day = this.params.day;
    var year = this.params.year;
    return Links.findOne({day: day, month: month, year: year}); 
}
我的listView模板很简单:

<template name="listView">
<li>{{title}} - {{url}} - {{comments}}</li></template>

  • {{title}}-{{url}}-{{comments}}
  • 每当我console.log任何变量(日、月、年)时,我都会返回预期值,但当它们放入Links.findOne方法时,它们似乎不起作用(即,我的数据上下文不会在我的模板中呈现。如果我在中硬编码日、月和年,则数据上下文会正确地传递到我的模板,并且它会起作用


    有人能解释一下为什么硬编码值不起作用时变量不起作用吗?

    你有助手吗?@yoK0没有,因为数据上下文是在路由器级别设置的。我需要吗?我想知道meteor怎么知道用什么来代替“title”“url”和“comments”@yoK0不认为数据上下文通过了d不需要helper函数就可以将ata添加到模板中?我发现了这一点。在我的数据库中,我将日、月和年存储为整数。this.params.day/month/year都等于一个字符串。使用parseInt()方法可以解决这一问题。