angular - Ionic3 - 如何更新动态 ngModel 的值?
问题描述
我正在使用 ionic 3 框架。如何更改 ngModel 的值?我想以编程方式切换所有离子切换。
组件:
allRecs:any;
constructor(){
this.allRecs = [
{
label: "label 1",
model : "model1"
},
{
label: "label 2",
model : "model2"
},
{
label: "label 3",
model : "model3"
}
]
}
public toggle(flag:boolean){
console.log(flag);
}
html:
<ion-item *ngFor="let x of allRecs">
<ion-label> {{x.label}} </ion-label>
<ion-toggle [(ngModel)]="x.model" (ionChange)="toggle(x.model)" item-end>
</ion-toggle>
</ion-item>
任何人都可以有想法吗?
解决方案
ion-toggle 需要一个布尔值,如果将其绑定到布尔值,它将起作用。在您的 allRecs 模型属性中是字符串,因此初始值不会影响 ion-toggle 并且无法更改它。所以 x.model 应该是布尔值,或者为例如值添加一个新的布尔属性来为 ngModel 设置它:
constructor(){
this.allRecs = [
{
label: "label 1",
value: false
},
{
label: "label 2",
value: false
},
{
label: "label 3",
value: true
}
]
}
toggle(flag:boolean){
for(let i=0;i<this.allRecs.length;i++){
this.allRecs[i].value = flag;
}
}
在 html 中:
<ion-item *ngFor="let x of allRecs">
<ion-label> {{x.label}} </ion-label>
<ion-toggle [(ngModel)]="x.value" (ionChange)="toggle(x.value)" item-end>
</ion-toggle>
</ion-item>
推荐阅读
- ansible - 如何从 Ansible 调试输出中删除不需要的字符
- tuples - Elixir:如何检查一个元素是否存在于数组中元组的特定索引中?
- r - 仅在一项 GitHub 操作作业上运行 testthat 测试
- html - Excel VBA在填写Web文本框时遇到问题
- html - 如何将 ngx-bootstrap 日期选择器对齐到左上角或左下角
- flutter - 无需在 Dart 中更改即可更改地图
- node.js - 如何使用 jest 统一 npm `request.post`
- php - Laravel 8:更新过程后如何重定向用户
- linux - “猫”是什么意思?Linux 运营商
- python - 一个描述符怎么可能没有 __get__ 和 __set__?