потока:Как фильтровать нулевое значение с помощью ngModel в Angular 2?
- Пользователь отправляет форму с некоторыми данными, некоторые дополнительные поля, которые пользователь не заполняющие сохраняются в Монго как «нуль».
- Позже пользователь решает изменить эту форму.
- Служба захватывает форму и отображает ее пользователю.
- В поле ввода формы отображается «null», потому что на шаге 1 он не заполнил их.
Итак, я создал трубку:
import {Pipe, PipeTransform} from '@angular/core';
@Pipe({
name: 'transformNull'
})
export class TransformNull implements PipeTransform {
transform(value) {
if (value == null) {
return null;
}
}
Затем в HTML я пытался сломать ngModel:
[ngModel]="user.extraInfo | transformNull" (ngModelChange)="user.extraInfo.value=$event"
это вызвало эту ошибку:
Cannot set property 'value' of undefined TypeError: Cannot set property 'value' of undefined
Я попытался задержать загрузку страницы с помощью * ngIf = "isDataAvailable", ошибка исчезла , пользователь может сохранить форму, значение сохраняется в mongo , но, когда он обновляет страницу, поле ввода пуст.
Затем я удалил * ngIf, добавил операторы elvis, но ошибка значения возвращается.
Я использую zone.js v0.7.4, пробовал с 0.7.2 и 0.7.5, но не повезло.
Что мне здесь не хватает?
Вы проверили https://stackoverflow.com/questions/36016407/two-way-binding-with-elvis-operator/36016472#comment70500052_36016472? – echonax
как насчет: (ngModelChange) = "user.extraInfo = $ event" и удалите свою трубу "transformNull" –
@SaeedPy удалили трубку, измените часть, которую вы упомянули, все еще null в поле ввода. –