Angular6 / Typescript - ОШИБКА при попытке добавить объект в массив - PullRequest
0 голосов
/ 12 сентября 2018

Я не могу добавить класс в мой массив. Сообщение об ошибке: ОШИБКА TypeError: Невозможно прочитать свойство 'значение' из неопределенного

класс

   export class Essensplan {

   id: number;
   EssenProWoche: number[] = new Array(5);

  }

service.ts

 / POST: add a new essensplan to the server */
  addEssensplan(essensplan: Essensplan): Observable<Essensplan> {
    return this.http.post<Essensplan>(this.essensplanUrl, essensplan, 
httpOptions).pipe(
      tap((essensplan: Essensplan) => this.log(added essen w/ 
id=${essensplan.id})),
      catchError(this.handleError<Essensplan>('addEssensplan'))
   );
  }

компонент

  addEssensplan(id: number): void {
    // id = id.trim();
    if (!id) { return; }
    this.essensplanService.addEssensplan({ id } as Essensplan)
      .subscribe(essensplan => {
        this.essensplan.push(essensplan);
        this.changeDetector.markForCheck();
      });
  }

Template **

<div>
  <label>Essensplan Woche:
<input type=number #Wochennummer />
  </label>
  <!-- (click) passes input value to add() and then clears the input -->
  <button (click)="addEssensplan(essensplanid.value); essensplanid.value=''">
    add
  </button>

Кажется, что он не может прочитать идентификатор в текстовом поле, возможно ли преобразовать входные данные String (?) В число

1 Ответ

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

ваш essensplanid.value не определен, потому что во вводе вы написали # Wochennummer.

просто замените essensplan.id на #Wochennummer или другим способом

<div>
 <label>Essensplan Woche:
    <input type="number"  #Wochennummer />
  </label>
  <!-- (click) passes input value to add() and then clears the input -->
  <button (click)="addEssensplan(Wochennummer.value); Wochennummer.value=''">
   add
   </button>
</div>
...