在 Google 个测验表单之间复制项目 .getFeedbackForCorrect
Copying item .getFeedbackForCorrect between Google quiz forms
.duplicate()
方法在表单之间不起作用(据我所知还不是)所以我编写了一个快速例程来将多项选择项从一个表单复制到另一个表单。
(我这样做是为了在 Classroom
中设置测验。我在用于形成性评估的测验中有很多关于单个主题的问题,我想将这些问题中的随机问题组合起来进行总结性评估。)
我编写的代码可以很好地复制问题而不是反馈。这是我的第一个 GAS 代码,非常抱歉!
TypeError: Cannot find function getFeedbackForCorrect
in object Item
. (line 32, file "Code")
function copyMultipleChoiceItem(item1, item2) {
// copies MC question item1 to item2 - tested PDW 17/05/20
// copy of feedback not working
//
// basic question items
item2.setTitle(item1.getTitle());
item2.setPoints(item1.asMultipleChoiceItem().getPoints());
item2.setRequired(item1.asMultipleChoiceItem().isRequired());
item2.setHelpText(item1.getHelpText());
// the choices
var choices = item1.asMultipleChoiceItem().getChoices();
for (var i = 0; i < choices.length; i++) {
item2.createChoice(choices[i].getValue(),choices[i].isCorrectAnswer());
}
item2.setChoices(choices);
// the feedback and links - cannot get this to work!
var feedback1 = item1.getFeedbackForCorrect();
var feedback2 = FormApp.createFeedback()
.setDisplayText(feedback1.getText());
// then do list of URLs
item2.setFeedbackForCorrect(feedback2);
}
您需要获得 item1
作为多选题。 getFeedbackForCorrect
方法在 item
上不可用。您可以为项目创建一个新变量作为多项选择项目。
var itemAsMultipleChoice;
itemAsMultipleChoice = item1.asMultipleChoiceItem();//Get item as multiple choice item
然后使用新的itemAsMultipleChoice
变量;
var feedback1 = itemAsMultipleChoice.getFeedbackForCorrect();
这是整个函数:
function copyMultipleChoiceItem(item1, item2) {
// copies MC question item1 to item2 - tested PDW 17/05/20
// copy of feedback not working
//
// basic question items
var itemAsMultipleChoice;
Logger.log('item1: ' + item1)
itemAsMultipleChoice = item1.asMultipleChoiceItem();
item2.setTitle(item1.getTitle());
item2.setPoints(item1.asMultipleChoiceItem().getPoints());
item2.setRequired(item1.asMultipleChoiceItem().isRequired());
item2.setHelpText(item1.getHelpText());
// the choices
var choices = item1.asMultipleChoiceItem().getChoices();
for (var i = 0; i < choices.length; i++) {
item2.createChoice(choices[i].getValue(),choices[i].isCorrectAnswer());
}
item2.setChoices(choices);
var feedback1 = itemAsMultipleChoice.getFeedbackForCorrect();
var feedback2 = FormApp.createFeedback()
.setDisplayText(feedback1.getText());
// then do list of URLs
item2.setFeedbackForCorrect(feedback2);
}
.duplicate()
方法在表单之间不起作用(据我所知还不是)所以我编写了一个快速例程来将多项选择项从一个表单复制到另一个表单。
(我这样做是为了在 Classroom
中设置测验。我在用于形成性评估的测验中有很多关于单个主题的问题,我想将这些问题中的随机问题组合起来进行总结性评估。)
我编写的代码可以很好地复制问题而不是反馈。这是我的第一个 GAS 代码,非常抱歉!
TypeError: Cannot find function
getFeedbackForCorrect
in objectItem
. (line 32, file "Code")
function copyMultipleChoiceItem(item1, item2) {
// copies MC question item1 to item2 - tested PDW 17/05/20
// copy of feedback not working
//
// basic question items
item2.setTitle(item1.getTitle());
item2.setPoints(item1.asMultipleChoiceItem().getPoints());
item2.setRequired(item1.asMultipleChoiceItem().isRequired());
item2.setHelpText(item1.getHelpText());
// the choices
var choices = item1.asMultipleChoiceItem().getChoices();
for (var i = 0; i < choices.length; i++) {
item2.createChoice(choices[i].getValue(),choices[i].isCorrectAnswer());
}
item2.setChoices(choices);
// the feedback and links - cannot get this to work!
var feedback1 = item1.getFeedbackForCorrect();
var feedback2 = FormApp.createFeedback()
.setDisplayText(feedback1.getText());
// then do list of URLs
item2.setFeedbackForCorrect(feedback2);
}
您需要获得 item1
作为多选题。 getFeedbackForCorrect
方法在 item
上不可用。您可以为项目创建一个新变量作为多项选择项目。
var itemAsMultipleChoice;
itemAsMultipleChoice = item1.asMultipleChoiceItem();//Get item as multiple choice item
然后使用新的itemAsMultipleChoice
变量;
var feedback1 = itemAsMultipleChoice.getFeedbackForCorrect();
这是整个函数:
function copyMultipleChoiceItem(item1, item2) {
// copies MC question item1 to item2 - tested PDW 17/05/20
// copy of feedback not working
//
// basic question items
var itemAsMultipleChoice;
Logger.log('item1: ' + item1)
itemAsMultipleChoice = item1.asMultipleChoiceItem();
item2.setTitle(item1.getTitle());
item2.setPoints(item1.asMultipleChoiceItem().getPoints());
item2.setRequired(item1.asMultipleChoiceItem().isRequired());
item2.setHelpText(item1.getHelpText());
// the choices
var choices = item1.asMultipleChoiceItem().getChoices();
for (var i = 0; i < choices.length; i++) {
item2.createChoice(choices[i].getValue(),choices[i].isCorrectAnswer());
}
item2.setChoices(choices);
var feedback1 = itemAsMultipleChoice.getFeedbackForCorrect();
var feedback2 = FormApp.createFeedback()
.setDisplayText(feedback1.getText());
// then do list of URLs
item2.setFeedbackForCorrect(feedback2);
}