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
正在尝试直接在模板帮助程序中通过_id检索文档,但在meteor中不起作用_Meteor - Fatal编程技术网

正在尝试直接在模板帮助程序中通过_id检索文档,但在meteor中不起作用

正在尝试直接在模板帮助程序中通过_id检索文档,但在meteor中不起作用,meteor,Meteor,我试图通过meteor中文档的\u id直接检索文档 这是我的助手: Template.lesson.helpers({ lesson: function() { //url format: http://localhost:3000/lesson/CroFdSKNBriy7QCHL var url = window.location.href; var result= url.split('/'); var id = result[result.len

我试图通过meteor中文档的
\u id
直接检索文档

这是我的助手:

Template.lesson.helpers({
  lesson: function() {
      //url format: http://localhost:3000/lesson/CroFdSKNBriy7QCHL

    var url = window.location.href;
    var result= url.split('/');
    var id = result[result.length-1];
    console.log('url: '+url);
    console.log('id: '+id);
    var lessonsData = Lessons.findOne({_id: id});
    return lessonsData;
  }
});
这将正确地从url获取id

我假设问题在于id是字符串格式的

我如何以
meteor/mongo
正在查找
id
的格式传递值?这是我收到的错误消息

模板帮助程序中出现异常:引用错误:未定义lessonData

非常感谢你的帮助

已更新问题,以引用当前错误并建议更改

此外,我不能使用这个项目的铁路由器,因为我使用的聚合物的一些部分,不与它很好地工作

var lessonsData = Lessons.findOne({_id: id}).fetch();
如果使用findOne,则不需要使用fetch直接获取对象,因此
fetch()
不是函数

顺便说一下,如果您使用iron路由器,您可以通过执行
router.current().params.yourparameter
而不是使用javascript window.location直接获取url的参数

另一个错误是你有

var lessonsData = Lessons.findOne({_id: id}).fetch();
    return lessonData;
您可以在第一张带有S的表格上键入lessonsData,而不是在返回的表格上。

生成此表格

//url format: http://localhost:3000/lesson/CroFdSKNBriy7QCHL
你应该有这样的东西(例如)

现在是助手

 Template.lesson.helpers({
       lesson: function() {
          //url format: http://localhost:3000/lesson/CroFdSKNBriy7QCHL
        var id = Session.get('lessonId')
        var lessonsData = Lessons.findOne({_id: id}); //like around says you don't need the fetch(), since you are only returning 1 object.
        return lessonsData;
     }   
   });
编辑你的问题,似乎你有一个打字错误,如错误所说


将helper语句的return改为
return lessonsData

谢谢,这是一个局部问题。当我删除fetch时,仍然会出现错误。模板帮助程序中出现异常:引用错误:未定义lessonData。我仍然认为问题是由于id被认为是字符串,但可能是其他原因。不幸的是,我不能使用熨斗路由器,因为我使用的聚合物部分与熨斗路由器不兼容。我更改了答案以回答您的第二个错误:)。这是由于打字错误,不幸的是我不能使用铁路由器。所以我需要手动获取id并通过url获取它。有没有一种方法可以将url中的字符串格式转换为meteor正在寻找的_id类型。uggh。。。非常感谢。我没有意识到我的打字错误。这就解决了问题。没有类型问题!
 Template.lesson.helpers({
       lesson: function() {
          //url format: http://localhost:3000/lesson/CroFdSKNBriy7QCHL
        var id = Session.get('lessonId')
        var lessonsData = Lessons.findOne({_id: id}); //like around says you don't need the fetch(), since you are only returning 1 object.
        return lessonsData;
     }   
   });