Ionic2:ngOnChanges没有触发

时间:2016-06-14 09:44:39

标签: ionic-framework ionic2

我想在输入值或滑块更改时执行某些操作,但为什么在更改文本或范围输入时不会触发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>

1 个答案:

答案 0 :(得分:3)

您可能需要使用aData

装饰@Input()

修改

您可能需要通过模板挂钩离子事件。如果它是测试版8,根据changelog

,该事件被称为(ionChange),前测试为(change)

类似于<ion-range [(ngModel)]="percentage" (ionChange)="changeFunc()" min="0" max="100">