2016-06-14 3 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> 

Update 3:

Это работал с keyup:

<ion-input type="text" [(ngmodel)]="total" (keyup)="inputChanged()"></ion-input> 

ответ

2

Вам может понадобиться, чтобы украсить aData с @Input()

Edit:

Это, вероятно, что вам нужно подключить в ионных событий через шаблон. Если это бета-8, событие называется (ionChange), предварительно beta8 это (change), согласно changelog

так что-то вроде <ion-range [(ngModel)]="percentage" (ionChange)="changeFunc()" min="0" max="100">

+0

обновленного с кодом с @Input, который не работал – Prashanth

+1

я использую бета-тестирование. 8. ionChange работал в диапазоне, но не работает для ионного ввода – Prashanth

Смежные вопросы