我有一个对SQL表的HTTP GET调用,该表将一个大型数组引入Angular。然后,我过滤数组以使其名称与表单中输入的ID相匹配。所有这些工作正常,然后它随机停止工作,而无需我进行任何更改。我以前用过所有这些代码,但从未在如此大的SQL表上使用过。开发人员工具中的“网络”标签(我认为)显示该呼叫正在运行。我的状态为200,大小为3.3 MB。这个大数组对象对Angular来说太多了吗?当我触发文件管理器的结果时,随机错误为“无法读取未定义的属性'filter'”。
public studentNameData: Array<any>;
public filteredName: Array<any>;
private _ClassTimesStudentID: any;
get ClassTimesStudentID(): any {
return this._ClassTimesStudentID; }
set ClassTimesStudentID(value: any) {
this._ClassTimesStudentID = value;
this.filteredName = this.filterStudent(value);}
filterStudent(ClassTimesStudentID: any) {
return this.studentNameData.filter(name => name.studentIdother ===
this.ClassTimesStudentID);
}
constructor(private loginService: LoginService, private
dataStorageService: DataStorageService) {
dataStorageService.getStudentDataAll().subscribe((importName: any) =>
this.studentNameData = importName); }
这是HTML组件。过滤器工作时,会将正确的名称输入。
<div class="col-sm-5 form-group">
<label for="name">Student ID</label>
<input type="text" id="ClassTimesStudentID" class="form-control"
name="ClassTimesStudentID" [(ngModel)]="ClassTimesStudentID">
</div>
<button class="btn btn-success" type="submit" [disabled]="!f.valid">
{{ editMode ? 'Update' : 'Add' }}</button>
<div *ngFor="let nam of filteredName; let in = index" class="form-group">
<label for="ClassTimesStudentName-input"> Name </label>
<input type="text" name="studentName-{{in}}"
[(ngModel)]="nam.studentName" name="ClassTimesStudentName">
</div>