Флажок Angular 6 не меняет состояние на основе ngModel - PullRequest
1 голос
/ 22 марта 2019

В массиве говорят, что у меня есть пять мантр, из которых пользователи должны выбрать максимум три. Это моя реализация

<input class='f-z-14' type="checkbox" [(ngModel)]='mantrasSelected[i]' [checked]='mantrasSelected[i] === true' (change)='mantraChecked(i, mantrasSelected[i], mantra)'>

а по моему тс

mantraChecked(i, event, mantra) {
    if (event) {
      if (this.selectedCount < 3) {
        this.selectedCount += 1;
        this.mantrasSelected[i] = true;
      } else {
        this.mantrasSelected[i] = false;
      }
    } else {
      if (this.selectedCount > 0 && this.selectedCount <= 3) {
        this.selectedCount -= 1;
        this.mantrasSelected[i] = false;
      }
    }
}

Итак, если я выберу первые три средства в this.mantrasSelected, у меня будет [true, true, true, false, false]. Поэтому, если пользователь проверил четвертое, это означает, что я проверяю свой mantraChecked (), если число больше 3, значит, я не хочу его проверять. после того, как я нажимаю 4-ую мантру, я изменяю mantrasSelected на [true, true, true, false, false], но вид показывает, что это проверено. Как можно показать пользователю, что они отметили только три поля? Как две ставки работают с флажком? Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...