所以我有一个民意调查模板,可以提供与用户想要的一样多的问题。如何将所有问题插入集合的元素中?由于之前我只有三个,所以我手动插入它们:
var newPoll = {
question: event.target.question.value,
choices: [
{ text: event.target.choice1.value, votes: 0 },
{ text: event.target.choice2.value, votes: 0 },
{ text: event.target.choice3.value, votes: 0 }
],
usersWhoVoted: [],
poll_is_open: true,
time_poll_closed: null,
};
如果我现在可以拥有尽可能多的选择,我该如何插入所有选项?
答案 0 :(得分:0)
如果您已实现本地集合来存储Choices
相关数据,则可以使用 cursor.map()
函数循环您的集合,将正确的对象返回到数组中最后设置相应的数据:
if (Meteor.isClient) {
Template.pollForm.events({
'click #save-form': function(event, template) {
var choices = Choices.find().map((choice) => ({
text: template.find("input[name=" + choice.name + "]").value,
votes: 0
}));
var newPoll = {
question: event.target.question.value,
choices: choices,
usersWhoVoted: [],
poll_is_open: true,
time_poll_closed: null
};
Polls.insert(newPoll);
}
});
}