无法访问数据中的this.params变量:铁路由器中的属性

时间:2014-03-19 18:32:54

标签: javascript meteor iron-router

当网址为/ company / martin时,以下代码无效:

 this.route('scheduledTasks', {
    path: '/company/:name',
    data: {
      items:
      function(){
        return scheduledTasks.find({company: this.params.name});
      }
    }

虽然这确实有效:

 this.route('scheduledTasks', {
    path: '/company/:name',
    data: {
      items:
      function(){
        return scheduledTasks.find({company: "martin"});
      }
  }

我尝试了几种解决方案,但似乎 this.params.name 不存在或无法访问?

1 个答案:

答案 0 :(得分:5)

this.params.name需要在路由的上下文中进行评估,我相信只有data是函数而不是对象文字时才会发生。试试这个:

this.route('scheduledTasks', {
  path: '/company/:name',
  data: function() {
    var company = this.params.name;
    return {
      items: function() {
        return scheduledTasks.find({company: company});
      }
    };
  }
});