我想在输入值或滑块更改时执行某些操作,但为什么在更改文本或范围输入时不会触发ngOnchanges?
控制器:
export class APage implements OnChanges {
@Input() total: string;
@Input() percentage: string;
constructor() {
}
ngOnChanges(changes: {[propName: string]: SimpleChange}) {
console.log('ngOnChanges');
}
}
模板:
<ion-list>
<ion-item>
<ion-label floating>Total</ion-label>
<ion-input type="text" [(ngmodel)]="total"></ion-input>
</ion-item>
<ion-item>
<ion-label stacked>Percentage: {{percentage}} %</ion-label>
<ion-range [(ngModel)]="percentage" min="0" max="100">
</ion-range>
</ion-item>
</ion-list>
UPDATE1:
根据没有帮助的建议添加@Input decorater。
UPDATE2:
这有效:
ion-range [(ngModel)]="percentage" min="0" max="100" (ionChange)="inputChanged()">
但它对离子输入无效:
<ion-input type="text" [(ngmodel)]="total" (ionChange)="inputChanged()"></ion-input>
更新3:
它与keyup一起使用:
<ion-input type="text" [(ngmodel)]="total" (keyup)="inputChanged()"></ion-input>
答案 0 :(得分:3)
您可能需要使用aData
@Input()
修改强>
您可能需要通过模板挂钩离子事件。如果它是测试版8,根据changelog
,该事件被称为(ionChange)
,前测试为(change)
类似于<ion-range [(ngModel)]="percentage" (ionChange)="changeFunc()" min="0" max="100">