在 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/