Javascript 错误类型错误:未定义。何时从服务提供数据
我正在尝试创建一个处理程序,它将根据这个“资源”是否有“类别”来创建一个类别数组。最后一个方法抛出一个错误。 错误类型错误:“this.allProjectResources未定义”Javascript 错误类型错误:未定义。何时从服务提供数据,javascript,angular,typescript,Javascript,Angular,Typescript,我正在尝试创建一个处理程序,它将根据这个“资源”是否有“类别”来创建一个类别数组。最后一个方法抛出一个错误。 错误类型错误:“this.allProjectResources未定义” 将类变量初始化为空数组 public-allProjectResources:Resource[]=[]; public allResourceCategories:ResourceCategory[]=[]; 另外,您应该在getAllResourcesByProjId()方法中分配空数组,而不是改变lengt
将类变量初始化为空数组
public-allProjectResources:Resource[]=[];
public allResourceCategories:ResourceCategory[]=[];
另外,您应该在getAllResourcesByProjId()
方法中分配空数组,而不是改变length属性
getAllResourcesByProjId(项目编号){
如果(!(isNullOrUndefined(this.allProjectResources))){
//this.allProjectResources.length=0;
this.allProjectResources=[];
}
...
}
import { ResourceCategory } from './resourceCategory';
import { Injectable } from '@angular/core';
import { Resource } from './resource';
import { HttpService } from '../project/http.service';
import { isNullOrUndefined } from 'util';
@Injectable()
export class ResourceService {
public allProjectResources: Resource[];
public allResourceCategories: ResourceCategory[];
uniqueResCategories = new Set();
constructor(private http: HttpService) { }
getAllResourcesByProjId(projid: number) {
if (!(isNullOrUndefined(this.allProjectResources))) {
this.allProjectResources.length = 0;
}
this.http.getAllResourcesById(projid).subscribe((data: Resource[]) =>
this.allProjectResources = data);
}
getAllResourceCategories() {
this.http.getAllResourceCategories().subscribe((data: ResourceCategory[]) =>
this.allResourceCategories = data);
}
getAllUniqieResourceCategories(){
this.allProjectResources.forEach(resource => {
this.allResourceCategories.forEach(function (category) {
if (resource.resourceCategoryId == category.id) {
this.uniqueResCategories.add(category.name);
console.log(category.name);
};
});
});
}
}