Как сделать так, чтобы флажок не менял значение - PullRequest
0 голосов
/ 09 октября 2019

У меня есть флажок, который, когда я щелкаю, выполняет функцию на угловом с проверками, чтобы знать, если я должен изменить значение. Проблема в том, что, хотя я установил переменную в false, флажок установлен в true.

Код в HTML:

<input id="check" type="checkbox" [checked]="test" [(ngModel)]="test" (click)="testClick(test)">

Код в component.ts:

public test = false;

public testClick(value) {
  value = false;
}

this.test = false в функции не работает.

Например: https://stackblitz.com/edit/angular-gar8xd

Хотя переменная имеет значение false, флажок визуально изменяется.

PD: в этом коде нет проверок, только я устанавливаю значение false для теста.

РЕДАКТИРОВАТЬ: я хочу, чтобы, если я установил значение false, флажок не отображался счек

РЕШЕНИЕ:

document.getElementById('check').checked = this.test;

Ответы [ 2 ]

0 голосов
/ 09 октября 2019

Это потому, что вы не устанавливаете для тестовой переменной значение, поступающее в метод testClick (test), вместо этого вы жестко кодируете значение, поступающее в метод, как ложное. Просто сделайте это методом testClick(test) в файле ts, и все готово - this.test = value;

рабочая демонстрация - https://stackblitz.com/edit/angular-qaqua6

0 голосов
/ 09 октября 2019

Вы можете использовать change событие вместо onClick. И установите для test значение false, а не value.

https://stackblitz.com/edit/angular-7f19un

<input type="checkbox" [checked]="test" [(ngModel)]="test" (change)="testClick(test)">

public testClick(value) {
  this.test = false;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...