2016-06-14 38 views
0

我想在輸入值或滑塊發生更改時執行某些操作,但爲什麼在文本或範圍輸入更改時不會觸發ngOnchanges?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> 

回答

2

您可能需要裝飾aData@Input()

編輯:

這可能是你需要掛接到通過模板離子事件。如果它的測試版8,該事件是根據changelog

所以像<ion-range [(ngModel)]="percentage" (ionChange)="changeFunc()" min="0" max="100">

+0

曾與@input代碼,沒有工作我使用的是測試版 – Prashanth

+1

更新稱爲(ionChange),預beta8它的(change)。 8。 ionChange適用於範圍,但不適用於離子輸入 – Prashanth