【问题标题】:Angular6/Typescript - ERROR when trying to Add Object to ArrayAngular6/Typescript - 尝试将对象添加到数组时出错
【发布时间】:2023-03-28 19:43:01
【问题描述】:

我未能在我的数组中添加一个类。错误信息:ERROR TypeError: Cannot read property 'value' of undefined

   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();
      });
  }

模板**

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

在Text字段中似乎无法读取ID,是否可以将String(?)输入转换为数字

【问题讨论】:

  • 在你的代码中没有提到变量essensplanid。你确定这是在某个地方定义的,而且不应该只是essensplan.value吗?

标签: arrays angular function typescript


【解决方案1】:

您的 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>

【讨论】:

    猜你喜欢
    • 2023-03-05
    • 1970-01-01
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 2022-01-16
    • 2020-06-11
    相关资源
    最近更新 更多