在Router.route数据中未定义参数

时间:2015-02-11 02:42:22

标签: javascript meteor

我一直在制作我的第一个Meteor.js项目,这个项目基本上是一个简单的博客,而且我认为我不能理解Router.route()内正在发生的事情。

client.js

Router.route('/category/:_category', {
  template: 'category',
  layoutTemplate: 'ApplicationLayout',
  waitOn: function() {
    return Meteor.subscribe('categorizedPosts', this.params._category);
  },
  data: {
    posts: Posts.find(),
    // THE LINE BELOW IS THE PROBLEM
    category: this.params._category
  }
});

此代码在Uncaught TypeError: Cannot read property '_category' of undefined内的指定行显示posts错误。没有那条线,我的路线工作正常,虽然我丢失了category数据。

事实上,我知道return Meteor.subscribe('categorizedPosts', this.params._category);内的行waitOn()工作正常,这意味着它正确抓取this.params._category

解决方案

我从答案中略微改变了我的代码。

data: function() {
  return {
    posts: Posts.find(),
    category: this.params._category
  }
}

1 个答案:

答案 0 :(得分:1)

改变这一点。

data:function(){
    var category = this.params._category
    console.log(category)
    return Posts.find()
  }

这里我们将data context更改为对象到函数