2017-01-28 7 views
0

Ich habe dieses Rohr:null Rohrwinkel 2 kehrt Fehler, wenn AOT

@Pipe({ 
    name: 'transformNull' 
}) 

export class TransformNull implements PipeTransform { 

    transform(value: any) { 
    switch(value){ 
     case null: 
     case undefined: 
     case "null": 
     case "undefined": 
     value = null; 
     break; 
     default: 
     if(typeof(value) == "string"){ 
      value = value.trim(); 
     } 
     break; 
    } 
    return value.toString(); 
    } 
} 

und dies ist der Code html:

<input type="text" formControlName="chipNumber" autocorrect="off" autocapitalize="off" spellcheck="off" name="chipNumber" class="form-control" id="chipNumber" placeholder="Αριθμός Microchip" [ngModel]="pet.chipNumber | transformNull" (ngModelChange)="pet.chipNumber.value = $event"> 

Wenn i auf JIT Run (ng build --prod), wobei das Rohr arbeitet als Wenn ein Feld "null" hat, gibt ngModel ein leeres Feld von mongo zurück.

Wenn ich ng build --prod --aot laufen dann erhalte ich folgende Fehlermeldung:

TypeError: Cannot create property 'value' on string '' 

und hier ist die AOT-Code:

t.prototype.handleEvent_267 = function(e, t) { 
      this.markPathToRootAsCheckOnce(); 
      var n = !0; 
      if (n = this._DefaultValueAccessor_267_3.handleEvent(e, t) && n, 
      "ngModelChange" == e) { 
       var i = (this.context.pet.chipNumber.value = t) !== !1; 
       n = i && n 
      } 
      return n 
     } 

Komische ist, in jeder anderen Seite, dass das Rohr vorhanden , es funktioniert wie es sollte in aot. Nur auf dieser Seite bekomme ich diesen Fehler. Ich löse alle Routen mit einem Resolver auf, so dass die Daten in Ordnung sind, es kommt so, wie es sollte.

Antwort

0

Mit diesem Code Problem gelöst:

pet.chipNumber = $event 

Statt:

pet.chipNumber.value = $event 
Verwandte Themen