javascript - 在 Meteor 的测验应用程序中显示提示

标签 javascript arrays node.js meteor

在 Meteor 中,我有一个测验。

每个问题都有多个提示。

如何在用户请求另一个提示时一次释放一个提示?

我想我应该将每个问题的提示存储为一个数组,但我一次只想显示一个,所以不可能只显示整个数组。

我不知道如果提示数组保存对象是不是最好

{ text: 'The hint text', isShownToUsers: ['userId1', 'userId2'] }

恐怕 isShownToUsers 数组会变得非常大,每次向用户显示问题时我都必须订阅整个数组。

但也许保存向用户显示的提示也很好,这样如果用户返回到问题,他/她将看到相同的提示?

最佳答案

这是一种方法。创建一个名为 questions 的 mongo 集合,并在其中放入看起来像这样的文档

{
    _id: 156276, 
    ... question stuff... 
    hints: [
        {id: '156276-1', 'text: 'black and white and red all over'}
    ]
}

users mongo 集合上创建一个与看到的提示相关的字段:

{... user stuff ..., seenHints: ['156276-1', '4983049-1']}

然后,当用户登陆该页面时,您可以使用诸如此类的内容查找特定问题的看不见的提示

var unseenHints = _.filter(question.hints, function(hint) {
    return currentUser.seenHints.indexOf(hint) === -1;
})

关于javascript - 在 Meteor 的测验应用程序中显示提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34889629/

相关文章:

node.js - 对 OData 的 Dynamics NAV 进行身份验证

java - 尝试在 Java 中搜索 JSON

arrays - 从数组中删除行

arrays - vb.net独特的结构数组

javascript - Moment.js 在特定时间创建弹出窗口

c - Fork 和 NodeJS 错误

javascript - Meteor 应用程序中 PayPal 的 IPN 监听器

javascript - 当我只知道字符偏移量时如何创建范围对象?

javascript - Cookies - 跨多个域设置

javascript - 将 fadeIn 添加到我的导航栏时出现问题