Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取Meteor iron路由器路由中多个数据参数的值?_Javascript_Meteor_Iron Router - Fatal编程技术网

Javascript 如何获取Meteor iron路由器路由中多个数据参数的值?

Javascript 如何获取Meteor iron路由器路由中多个数据参数的值?,javascript,meteor,iron-router,Javascript,Meteor,Iron Router,我已经为我的小型Meteor应用程序定义了以下路线: this.route('browse-class', { path: '/browse/:_class', data: { theClass: function() { return this.params._class; }, numBooks: function() { return Books.find({"class": this.params._class},{sort:{"creat

我已经为我的小型Meteor应用程序定义了以下路线:

this.route('browse-class', {
    path: '/browse/:_class',
    data: {
        theClass: function() { return this.params._class; },
        numBooks: function() { return Books.find({"class": this.params._class},{sort:{"createdAt": 1}}).count(); },
        books: function() { return Books.find({"class": this.params._class},{sort:{"createdAt": 1}}); }
    }
});
我不知道如何访问数据的返回值。也就是说,麻木。它应该返回一个整数,但在我的模板助手中,我似乎无法让它与以下代码一起工作:

Template.browseClass.helpers({

    booksFound: function() {
        return this.data.numBooks > 0;
    },

    theOwner: function() {
        theUser = Meteor.users.findOne({_id: this.owner});
        return theUser.username;
    }

});
当我比较console.log()的值时,它似乎是在比较函数,而不是它返回的值或其他什么?我有点困惑


任何想法都将不胜感激。谢谢

数据应定义为路由中的函数,如下所示:

data:function(){
  var booksCursor=Books.find(...);
  return {
    theClass:this.params._class,
    numBooks:booksCursor.count(),
    books:booksCursor
  };
}
Template.browseClass.helpers({
    booksFound:function(){
      return this.numBooks>0;
    }
});

<template name="browseClass">
  Number of books : {{numBooks}}
  {{#each books}}
    {{...}}
  {{/each}}
</template>
然后,如果将
browseClass
指定为路由模板,则它将以
data()
的结果作为数据上下文呈现,因此您可以访问如下属性:

data:function(){
  var booksCursor=Books.find(...);
  return {
    theClass:this.params._class,
    numBooks:booksCursor.count(),
    books:booksCursor
  };
}
Template.browseClass.helpers({
    booksFound:function(){
      return this.numBooks>0;
    }
});

<template name="browseClass">
  Number of books : {{numBooks}}
  {{#each books}}
    {{...}}
  {{/each}}
</template>
Template.browseClass.helpers({
已找到:函数(){
返回此值。numBooks>0;
}
});
图书数量:{{numBooks}
{{{每本书}
{{...}}
{{/每个}}

太棒了。我知道我非常接近我需要做的事情,但这确实简化了事情。非常感谢。现在就测试。刚刚在我的应用程序中测试了这个,工作完美无瑕,并且肯定清理了我的路线。非常感谢你!