2016-12-05 47 views
0

这似乎是一个相当常见的问题。然而,它并没有返回正式的答案(或者我的词汇量太少,我无法找到它),或者我没有得到建议的工作答案。流星从MongoDB中检索子阵列数据

这是通过MongoDB中记录的子阵列,我目前用的单个记录的集合称为问题玩弄记录基本迭代:

{ 
    "_id" : ObjectId("1"), 
    "question" : "question 1", 
    "answers" : { 
     "answer1" : "answer 1", 
     "answer2" : "answer 2" 
    } 
} 

我的助手是如下:

Template.testquiz.helpers({ 
    questions: function() { 
     return questions.find({}); 
    }, 
}); 

那么我们有没有钱拍:

<template name="testquiz"> 
    {{#each questions}} 
     {{question}} 
     <br /><br /> 
     {{#each answers}} 
      {{this}} 
     {{/each}} 
    {{/each}} 
</template> 

我可以得到曲estion出现,但我试图在对象“答案”上运行嵌套的所有变体都会导致一个错误:this.answers,回答这个问题,questions.answers,将每个嵌套放入它自己的模板中并调用等等,持续一个小时。我的直觉是,这是标准功能,我从一开始就忽视了一些事实。

答案总是赞赏,但如果这是一个没有脑子的指向我的文件,我会查找它。

回答

0

你没有一个数组,你有一个子对象。对象的不是可迭代的除非你帮助这样做。

你应该改变:

{ 
    "_id" : ObjectId("1"), 
    "question" : "question 1", 
    "answers" : { 
     "answer1" : "answer 1", 
     "answer2" : "answer 2" 
    } 
} 

到:

{ 
    "_id" : ObjectId("1"), 
    "question" : "question 1", 
    "answers" : [ 
     "answer 1", 
     "answer 2" 
    ] 
} 

那么你的模板将正常工作。

+0

谢谢亲切的先生。我会去阅读这些差异。感谢你的回答。 – ashcanschool