как отобразить предыдущий ответ на вопросы с одним ответом в викторине

#javascript #angular #angular2-template

#javascript #angular #angular2-шаблон

Вопрос:

В моем приложении Angular quiz я добавляю функцию «предыдущие ответы», и у меня возникают некоторые трудности с отображением предыдущих ответов на вопросы с одним ответом.

Здесь ниже приведены 1) Функция TypeScript в моем QuizService, 2) фрагмент для вопросов с несколькими ответами, который отображает предыдущие ответы, и 3) моя попытка создать шаблон вопросов с одним ответом, с которым мне нужна помощь.

Вопросы с одним ответом должны показывать один соответствующий предыдущий ответ на вопрос.

Пожалуйста, не могли бы вы помочь решить эту проблему. Спасибо!

Код QuizService:

 setPreviousUserAnswersText(questions: QuizQuestion[], previousAnswers): void {
  for (let i = 0; i < previousAnswers.length; i  ) {
    if (previousAnswers[i].length === 1) {
      const previousAnswersSingleText = questions[i].options[previousAnswers[i] - 1].text;
      this.previousAnswers.push(previousAnswersSingleText);
    }
    if (previousAnswers[i].length > 1) {
      const previousAnswerMultiple = previousAnswers[i].slice();
      for (let j = 0; j < previousAnswerMultiple.length; j  ) {
        const previousAnswersMultipleText = questions[i].options[previousAnswerMultiple[j] - 1].text;          
        this.previousAnswersMultipleTextArray.push(previousAnswersMultipleText);
      }
      this.previousAnswers.push(this.previousAnswersMultipleTextArray);
    }
  }
}
  

HTML-шаблон с несколькими ответами:

 <ng-container *ngIf="option.selected">
  ...
  <div *ngFor="let previousAnswer of previousAnswers; index as j" class="previous-answer-text">
    <span *ngIf="previousAnswers[j].length > 1">
        {{ previousAnswer | join }} were selected in your previous quiz.
    </span>
  </div>
</ng-container>
  

Шаблон HTML с одним ответом (нужна помощь с этим):

 <ng-container *ngIf="option.selected">
  ...  
  <!-- TODO: get this working -->
  <div *ngFor="let previousAnswer of previousAnswers; index as j" class="previous-answer-text">
    <span *ngIf="previousAnswers[j].length === 1">
      amp;ldquo;{{ previousAnswer }}amp;rdquo; was selected in your previous quiz.
    </span>
  </div>
</ng-container>
  

Комментарии:

1. привет! работают ли вопросы с несколькими ответами? попытался просмотреть ссылку, которую вы указали, и не смог перейти к первому вопросу. Кроме того, не могли бы вы подробнее объяснить, что у вас не работает (по крайней мере, пока ссылка не заработает)?

2. Это странно, для меня это работает нормально. Можете ли вы попробовать сейчас? Я пытаюсь заставить предыдущие ответы пользователя отображаться в следующем тесте, если пользователь повторяет тест. Ответы на вопрос с несколькими ответами отображаются в следующем тесте, но не с одним ответом.