gpt4 book ai didi

mongodb - Meteor 如何从 mongo 数据库中检索一系列问题并在应用程序中仅显示其中一个问题

转载 作者:可可西里 更新时间:2023-11-01 10:04:19 24 4
gpt4 key购买 nike

由于我是编程和 Meteor 的新手,我目前正在使用 Meteor.js 构建一个(简单的)Quizz 应用程序。我按照发现 meteor 指南书并将他们的示例显微镜项目重建为测验。 我目前正在努力从 mongo 数据库中检索一系列问题并在应用程序中只显示其中一个问题。

我收藏中的数据目前如下所示:

Quizzes.insert(
{"quiztitle": "Quiz One",
"quizquestions": ["Q1.1", "Q1.2"]
}),

我目前正在展示所有这些

<template name="quizPage">
<h3>
{{#each quizquestions}}
{{> quizQuestion}}
{{/each}}
</h3>

<template name="quizQuestion">
<div class="quiz">
<div class="quiz-content">
{{this}}
</div>
</div>

我已经尝试了几种解决方案来只显示第一个问题:

1.通过辅助函数用空格键替换数组编号。尽管帮助程序起作用了(它返回了一个特定的数字,例如 0),并且数组本身(括号之间为 0)。 Meteor 似乎不允许将空格键插入到数组括号中。

<template name="quizQuestion">
<div class="quiz">
<div class="quiz-content">
{{quizquestions.[{{questionnumber}}]}}
</div>
</div>

2.a通过mongodb查询返回特定字段。例如

Return Quizzes.find( { quiztitle: 'Quiz One' }, { quizquestion: 1, _id:0, quiztitle: 0 });

不幸的是,这只允许在服务器端使用。我还尝试将返回的数组保存到 lib 文件夹中的全局变量中

questionArray = Quizzes.find( { quiztitle: 'Quiz One' }, { quizquestion: 1, _id:0, quiztitle: 0 } );

当我尝试对集合进行切片时也是这种情况,这是在另一篇文章中建议的

3.由于这似乎也不起作用,所以我尝试发布该集合的一个子集以用于特定测验。我在这里遇到的问题是该系列似乎已完整发布。我通过

在 frontpage.js 上发布集合
Meteor.subscribe('quizzes');

我还尝试按照 http://docs.meteor.com/#meteor_subscribe 文档中的建议在自动运行中订阅

Deps.autorun(function () {
Meteor.subscribe("quizzes")});

问题:你能帮我找到一种方法只返回问题数组并将其保存到全局变量或通过帮助程序返回它吗?希望您能帮帮我,非常感谢,

meteor 初学者。

最佳答案

首先,您需要确保数据在客户端可用。在 chrome 中,打开您的 javascript 控制台 (cmd+option+j) 并粘贴 Quizzes.find().fetch(),您应该会看到您的对象。假设很好,继续...

要显示您的问题,您可以将特定问题返回到 {{#with}} block ,如下所示:

{{#with question}}
<li>{{this}}</li>
{{/with}}

您的问题助手可能看起来像这样......

Template.TEMPLATE_NAME.helpers({
question: function(){
var currentQuestion = Session.get('currentQuestion') || 0;
return Quizzes.findOne({}).quizquestions[currentQuestion]
}
});

然后您可以在每次回答或转到 Meteor 事件中的下一个问题时递增 Session 变量,如下所示:

Template.TEMP_NAME.events({   
'click .next-question': function(){
var num = Session.get('currentQuestion') + 1;
Session.set('currentQuestion', num);
}
});

这将导致助手重新运行,您的新问题将被传回 {{#with}} block 。

关于mongodb - Meteor 如何从 mongo 数据库中检索一系列问题并在应用程序中仅显示其中一个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24038944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com