2017-01-28 4 views
0

У меня есть эта труба:нулевой трубы угловая погрешность 2 возвращается при АОТ

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

и вот код АОТ:

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. Только на этой странице я получаю эту ошибку. Я разрешаю все маршруты с помощью распознавателя, поэтому данные в порядке, он приходит, как следует.

ответ

0

Используя этот вопрос кода решена:

pet.chipNumber = $event 

Вместо:

pet.chipNumber.value = $event 
Смежные вопросы