【问题标题】:null pipe angular 2 returns error when AOT空管角度 2 在 AOT 时返回错误
【发布时间】:2017-01-28 13:05:57
【问题描述】:

我有这个管道:

   @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
        }

有趣的是,在每个其他页面中存在管道,它在 aot 中正常工作。就在这个页面我得到这个错误。我用解析器解析所有路由,所以数据没问题,它应该进来。

【问题讨论】:

    标签: angular angular2-aot angular2-pipe


    【解决方案1】:

    使用此代码问题解决:

    pet.chipNumber = $event
    

    代替:

    pet.chipNumber.value = $event
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-22
      • 2017-09-04
      • 2019-02-25
      • 2017-02-18
      • 2016-03-22
      • 1970-01-01
      相关资源
      最近更新 更多