Угловой флажок с логическим значением

#angular #typescript #checkbox

#угловой #typescript #флажок

Вопрос:

Я работаю над проектом Angular, где мне нужно предоставить право администратора на использование. isAdmin является логическим значением (false / true). Но он не может понять, как проанализировать правильное значение для компонента и сохранить значение.

 <div class="checkbox">
   <label>
     <input type="checkbox" name="isAdmin" [(ngModel)]="user.isAdmin" [checked]="item.checked">
     Is Admin?
   </label>
</div>
 

component.ts выглядит следующим образом:

 this.userForm.get('isAdmin').valueChanges.subscribe(val => {
  this.newUser.isAdmin = !!val;
});
 

Может кто-нибудь увидеть, в чем моя ошибка?

Ответ №1:

В вашем html вы используете формы на основе шаблонов. Но в вашем ts вы используете подход с реактивными формами.

Поэтому вам следует изменить свой HTML, чтобы использовать подход с реактивными формами, например, следующим образом:

 <div class="checkbox">
   <label>
     <input type="checkbox" name="isAdmin" [formControl]="userForm.get('isAdmin')" [checked]="item.checked">
     Is Admin?
   </label>
</div>