Установите флажок Свойство флажка Тернарным Оператором В Angular 5 - PullRequest
0 голосов
/ 18 октября 2018

В моем компоненте у меня есть флажок типа

<div class="checkbox checkbox-primary">
  <input id="approved" name="approval" type="checkbox" (change)="clickEvent($event)" 
    [checked]="Model.IsApproved =='Yes'?true:false">
    <label for="approved">Approved /label>
 </div>

IsApproved - свойство типа string в моей модели на стороне клиента, оно содержит либо Да, либо Нет.

Я хочу установитьэто проверено, если IsApproved равно Yes, в противном случае не проверено.

Я пробовал ниже Комбинация

[checked]="IsApproved ===Yes?'true':'false'"

[checked]="IsApproved ==Yes?'true':'false'"

[checked]="IsApproved =='Yes'?true:false"

[checked]="{{IsApproved ===Yes?'true':'false'}}"

Но, похоже, здесь ничего не работает, возможно ли это с троичным оператором?

Ответы [ 4 ]

0 голосов
/ 18 октября 2018

TS

public isChecked:boolean

В зависимости от условия присваивает значение true или false

HTML

<label>Checkbox</label>
<input type="checkbox" [checked]="isChecked" />
0 голосов
/ 18 октября 2018

Просто используйте это

[checked]="Model.IsApproved =='Yes'"

Все еще не работает?

Вы можете устранить проблему с помощью -

  1. Вы получаете любую неопределенную ошибку?Если нет, то перейдите к следующим шагам, иначе проверьте наличие ошибки.
  2. Является ли Model объектом, на который вы хотите сослаться?
  3. Является ли свойство IsApproved name правильным?
  4. Является ли свойство IsApproved значением "Да" или "Нет"
  5. Проверьте значение с учетом регистра.Это Yes или yes или YES.

Вот и все.

0 голосов
/ 18 октября 2018

Если вы введете

[checked]="Model.IsApproved.toLowerCase() === 'yes'

, он вернет истину или ложь, вам вообще не нужна троичная операция

0 голосов
/ 18 октября 2018

Я создал рабочий стек-блиц для визуализации ответа.

Как уже сказано в комментариях [checked]="Model.IsApproved === 'Yes' ? true : false" - правильный синтаксис.Похоже, ваш Model.IsApproved настроен неправильно.Я устанавливаю это, используя [(ngModel)] внутри input с type="text":

Компонент:

Model = {
    IsApproved: ''
};

Вид:

<input type="text" name="approved" [(ngModel)]="Model.IsApproved">

<div class="checkbox checkbox-primary">
  <input id="approved" name="approval" type="checkbox" (change)="clickEvent($event)" [checked]="Model.IsApproved === 'Yes' ? true : false">
  <label for="approved">Approved</label>
</div>

Введите Yes вприведенный выше ввод и посмотреть, как он работает.Удачи!

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