【发布时间】: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