gpt4 book ai didi

Angular2 无法读取未定义的属性 'push'

转载 作者:太空狗 更新时间:2023-10-29 18:21:02 24 4
gpt4 key购买 nike

目前,我可以调用服务并用记录填充表格;记录有一个 selected 属性,由每行的复选框切换。

在那个表格下面是一个按钮;当我按下按钮时,我想遍历表格并创建一个新数组,其中包含已选择属性 == true 的条目。

我似乎无法正确初始化 selecterecords 数组。

记录.ts

export class Record {
id: string;
firstname: string;
lastname: string;
salary: string;
selected : boolean;
}

表格组件.ts

export class TableComponent implements OnInit {
records: Record[];
selectedrecords: Record[];

constructor(
private router: Router,
private recordService: RecordService) {}

getRecords(): void {
this.recordService.getRecords().then(records => this.records = records);
}

ngOnInit(): void {
this.getRecords();
}

createselectedRecords() {
for (let rec of this.records) {
if (rec.selected) {
this.selectedrecords.push(rec);
}
console.log(this.selectedrecords);
}
}
}

记录服务.ts

@Injectable()
export class RecordService {
getRecords(): Promise<Record[]> {
return Promise.resolve(RECORDS);
}

getRecord(id: string): Promise<Record> {
return this.getRecords()
.then(records => records.find(record => record.id === id));
}
}

最佳答案

通过 selectedrecords: Record[],您只需设置此属性的类型,这样 TypeScript 就可以在您做错任何事情时发出警告。

要实际初始化属性,您可以使用空数组:

selectedrecords: Record[] = [];

关于Angular2 无法读取未定义的属性 'push',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40361010/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com