Копирование элемента.getFeedbackForCorrect между формами Google Quiz
.duplicate()
Метод не работает между формами (ну, насколько я вижу), поэтому я написал небольшую процедуру для копирования элементов с множественным выбором из одной формы в другую.
(Я делаю это, чтобы установить викторины в Classroom
, У меня есть банки вопросов по отдельным темам в викторинах для формативной оценки и я хочу объединить случайные вопросы из них для итоговой оценки.)
Код, который я написал, прекрасно работает при копировании вопросов, но не обратной связи. Это мой первый код GAS, поэтому извиняюсь!
Ошибка типа: не удается найти функцию
getFeedbackForCorrect
в объектеItem
, (строка 32, файл "Код")
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);
}
1 ответ
Вам нужно получить 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);
}