在我的组件中,有一个复选框
<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类型的属性,它包含Yes或No。
如果IsApproved为“是”,我想将其设置为“已选中”,否则为“未选中”。
我尝试了以下组合
[checked]="IsApproved ===Yes?'true':'false'"
[checked]="IsApproved ==Yes?'true':'false'"
[checked]="IsApproved =='Yes'?true:false"
[checked]="{{IsApproved ===Yes?'true':'false'}}"
但是这里似乎没有任何作用,三元运算符可能吗?
答案 0 :(得分:1)
我创建了working stackblitz以便可视化答案。
如评论[checked]="Model.IsApproved === 'Yes' ? true : false"
中所述,语法正确。好像您的Model.IsApproved
设置不正确。我在[(ngModel)]
的{{1}}内使用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>
,然后查看它是否有效。祝你好运!
答案 1 :(得分:1)
[checked]="Model.IsApproved =='Yes'"
您可以使用-
解决问题Model
是您要引用的对象吗?IsApproved
的名称正确吗?IsApproved
的值为“是”或“否” Yes
还是yes
还是YES
。就是这样。
答案 2 :(得分:1)
TS
public isChecked:boolean
根据条件分配真或假
HTML
<label>Checkbox</label>
<input type="checkbox" [checked]="isChecked" />
答案 3 :(得分:0)
如果您输入
[checked]="Model.IsApproved.toLowerCase() === 'yes'
如果您根本不需要三元运算,它将返回true或false