(Угловая 5) Ошибка: невозможно прочитать свойство 'setValue' из неопределенного - PullRequest
0 голосов
/ 22 сентября 2018

Я инициализирую свою форму таким образом, но когда мне нужно отредактировать ее, она не принимает значения

component.ts

ngOnInit() {
  this.tinvoiceService.initForm();
}

tinvoice.service.ts

form: FormGroup;

constructor(
  private _fb: FormBuilder, 
  private invoiceService: InvoiceService
) {}

initForm(): void {
  this.form = this._fb.group({
    customer: [null, Validators.required],
    totalPrice: 0,
    purchases: this._fb.array([])
  });

  // initialize stream
  const myFormValueChanges$ = this.form.controls['purchases'].valueChanges;
  myFormValueChanges$.subscribe(purchases => this.updatePurchasesAmount(purchases));

}

из HTML я передаю значения

tinvoice.component.html

<a 
  class="btn btn-outline-info text-info" 
  (click)="tinvoiceService.populateForm(invoice)">
  Edit
</a>

tinvoice-list.component.ts

populateForm(invoice) {
  this.form.setValue(invoice);  
}

по консоли у меня есть этот результат

enter image description here

Просмотреть в StackBlitz

есть идеи?

1 Ответ

0 голосов
/ 22 сентября 2018

Форма - это элемент пользовательского интерфейса, он создается после того, как представление отрисовано.

Вы можете попробовать вызвать эту функцию в ngAfterViewInit, ошибка должна исчезнуть.если не просто создать одну скрипку, и я постараюсь исправить это для вас.

...