Angular 2 ngModel dentro de una function

Estoy tratando de pasar un ngModel a una function y get el cambio,

No sé cómo usarlo.

esto es lo que tengo ahora:

<ion-input text-right formControlName="monday" type="number" pattern="[0-9]*" placeholder="00.00" [(ngModel)]="monday" (keypress)="onChange(monday)"> </ion-input> <ion-input text-right formControlName="tuesday" type="number" pattern="[0-9]*" placeholder="00.00" [(ngModel)]="tueasday" (keypress)="onChange(tuesday)"> </ion-input> 

…. y así…

Luego en mi página. Obtuve

 monday: string = ''; tuesday: string = ''; etc... onChange(input: string){ //I want the input to correspond to my ngModel so it gets updated input = this.clientAction.transformInput(input); } 

No quiero hacer:

 this.monday = this.clientAction.transformInput(input); 

Porque como puedes pensar, tengo todo el día de la semana, así que no quiero tener una function para cada día como:

 onChangeMonday(){}; onChangeTuesday(){}; 

Necesito algo dynamic.

¿Cómo puedo resolver este problema?

Gracias por adelantado

[SOLUCIÓN] @ AJT_82

en lugar de usar mi ngModel y tratar de actualizarlo, la solución fue acceder a los controles desde el formulario.

en tu página.html

  <ion-input text-right formControlName="monday" type="number" pattern="[0-9]*" placeholder="00.00" [(ngModel)]="monday" (keypress)="onChange(monday, 'monday')"> </ion-input> 

luego en tu página.

 onChange(input: string, day: string){ this.rateForm.controls[day].setValue(this.clientAction.transformInput(input)); } 

Funciona como un encanto ahora !! Gracias @ AJT_82

Como tiene un formulario, le sugiero que omita los ngModels completo y haga uso del formulario que tiene. Todavía un poco inseguro sobre qué se supone que debe hacer this.clientAction.transformInput(input) , transforma los valores de alguna manera, como usted explicó. ¿Debería poder incorporar esto, quizás cuando envíe el formulario? De todos modos, como se dijo, tiene sus valores de forma almacenados de forma segura en el object creado por el formulario, que para usted se vería así:

 { "monday":null, "tuesday":null, "wednesday":null, // ... and so on } 

Cuando valueChanges sus campos, puede capturar cada pulsación de tecla con valueChanges , donde puede acceder al formulario completo:

 this.myForm.valueChanges.subscribe(res => { console.log("all form values: ", res) // here is an object with all your form values }) 

Cuando lo necesite, también puede acceder a cada control de formulario, accediendo aquí el lunes:

  console.log(this.myForm.controls['monday'].value) 

Así que esto se deshace de la molestia de usar ngModel para cada valor de formulario.

Estas son algunas de las forms en que puede interceptar los valores y luego "transformarlos" en algún momento, cuando lo desee / necesite. Probablemente el mejor lugar para hacerlo, es cuando envía formularios, repite los valores y los transforma. ¡Y esto es totalmente dynamic, como lo deseaba, y no necesita 7 funciones para transformar cada control de formulario! 😉

Espero que esto te ayude, y aquí hay un plunker (mira la console también).

Plunker

Cuando usa ngModel, ¿por qué quiere pasar el mismo para funcionar?

 <ion-input text-right formControlName="monday" type="number" pattern="[0-9]*" placeholder="00.00" [(ngModel)]="monday" (keypress)="onChange()"> </ion-input> 

y manejar usando el ngModel mismo como

 onChange(){ input = this.clientAction.transformInput(this.monday); } 

Actualización 1:

Obtuve tu estás buscando transformar el valor del textbox a medida que el usuario lo escribe. Ver directiva personalizada