Angular 错误:无法读取属性';长度';未定义的

Angular 错误:无法读取属性';长度';未定义的,angular,typescript,Angular,Typescript,我有两个名为contacts和workers的json文件。我正在显示workersJSON中的联系人及其分配的工作人员,如下所示: 错误类型错误:无法读取未定义的属性“length” 在这里,我被错误缠住了,我无法找到代码的错误 只需将您的forLoop包装成条件,如下所示- if (this.workers && this.workers.length) { } 问题:您正在使用视图部件调用/绑定方法,并且每次在更改检测中它都会调用。所以在第一个中,this.worker

我有两个名为
contacts
workers
json
文件。我正在显示
workers
JSON中的联系人及其分配的工作人员,如下所示:

错误类型错误:无法读取未定义的属性“length”

在这里,我被错误缠住了,我无法找到代码的错误


只需将您的
forLoop
包装成条件,如下所示-

if (this.workers && this.workers.length) { }
问题:您正在使用视图部件调用/绑定方法,并且每次在更改检测中它都会调用。所以在第一个
中,this.workers
为空,并抛出错误


只需将您的
forLoop
包装成条件,如下所示-

if (this.workers && this.workers.length) { }
问题:您正在使用视图部件调用/绑定方法,并且每次在更改检测中它都会调用。所以在第一个
中,this.workers
为空,并抛出错误


更新您的功能,如下所示:

 getWorkerById(workerId) {
   if(this.workers.length > 0){
     for(let w of this.workers) {
        if(w.id === workerId) 
         return w.name;
       }
    }
 }
并为工人添加ngIf

<tr *ngIf="contact.workers">
    <td>Assigned Workers</td>
    <td>
        <ul>
            <li *ngFor="let workerId of contact.workers"> 
              {{getWorkerById(workerId)}}</li>
        </ul>
    </td>
</tr>

指定工人
    {{getWorkerById(workerId)}

按如下方式更新您的功能:

 getWorkerById(workerId) {
   if(this.workers.length > 0){
     for(let w of this.workers) {
        if(w.id === workerId) 
         return w.name;
       }
    }
 }
并为工人添加ngIf

<tr *ngIf="contact.workers">
    <td>Assigned Workers</td>
    <td>
        <ul>
            <li *ngFor="let workerId of contact.workers"> 
              {{getWorkerById(workerId)}}</li>
        </ul>
    </td>
</tr>

指定工人
    {{getWorkerById(workerId)}

很抱歉,您没有对工作示例Update stackblitz进行任何更改,请重试。抱歉,您没有对工作示例Update stackblitz进行任何更改,请重试