2017-01-28 75 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