2017-01-28 60 views
0

我有這樣的管:空管角2返回錯誤時,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(); 
    } 
} 

,這是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"> 

當我在JIT(ng build --prod)運行時,管的工作原理如它應該,當一個字段有「null」時,ngModel從mongo返回一個空字段。

當我運行ng build --prod --aot然後我收到以下錯誤:

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

這裏是AOT代碼:

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 
     } 

有趣的是,該管道存在其他每一頁,它的工作原理應該是一樣的。只是在這個頁面我得到這個錯誤。我使用解析器解析所有路由,因此數據可以正常使用,但它應該是正常的。

回答

0

使用解決了這個代碼的問題:

pet.chipNumber = $event 

相反的:

pet.chipNumber.value = $event