如果构造函数中存在值,为什么我会得到未定义?
Why I get undefined if value is present in constructor?
存在变量 findbyobjectidlatest$
:
的服务
@Injectable({
providedIn: "root",
})
export class ConstructionObjectsDataService {
constructor(
private httpClient: HttpClient,
private parametersService: ParametersService
) {
console.log(this.parametersService.findbyobjectidlatestFilter);
}
findbyobjectidlatest$ = this.httpClient.get<any>(
`${environment.apiUrl}/${this.URL_PATH}/findbyobjectidlatest?objectid=${this.parametersService.findbyobjectidlatestFilter.parameters.objectid}`
);
}
为什么值在构造函数中显示:console.log(this.parametersService.findbyobjectidlatestFilter);
为:
{ parameters: {objectid: "08438F2E01384371BFED6E282950C054"}}
但是在http客户端请求中未定义:
${this.parametersService.findbyobjectidlatestFilter.parameters.objectid}
如果移动构造函数中的所有变量,我可以在构造函数中获取对象:
但为什么我仍然未定义:
console.log(this.parametersService.findbyobjectidlatestFilter.parameters.objectid);
成员 findbyobjectidlatest$ 在构造函数之前初始化
您可以按照以下步骤进行
@Injectable({
providedIn: "root",
})
export class ConstructionObjectsDataService {
constructor(
private httpClient: HttpClient,
private parametersService: ParametersService
) {
}
getQuery() {
const vals = this.parametersService.findbyobjectidlatestFilter;
console.log(vals);
const parameters = vals.parameters;
console.log(parameters);
const objectid = parameters.objectid;
console.log(objectid);
const apiUrl = `${environment.apiUrl}`;
const URL_PATH = `${this.URL_PATH}`;
const objectid = `/findbyobjectidlatest?objectid=${objectid}`;
const url = apiUrl + URL_PATH + objectid ;
console.log(apiUrl, URL_PATH, objectid);
return this.httpClient.get<any>(url);
}
}
如果 parametersService 或其他参数在调用构造函数时尚未准备好,您可以从方法中获取查询
存在变量 findbyobjectidlatest$
:
@Injectable({
providedIn: "root",
})
export class ConstructionObjectsDataService {
constructor(
private httpClient: HttpClient,
private parametersService: ParametersService
) {
console.log(this.parametersService.findbyobjectidlatestFilter);
}
findbyobjectidlatest$ = this.httpClient.get<any>(
`${environment.apiUrl}/${this.URL_PATH}/findbyobjectidlatest?objectid=${this.parametersService.findbyobjectidlatestFilter.parameters.objectid}`
);
}
为什么值在构造函数中显示:console.log(this.parametersService.findbyobjectidlatestFilter);
为:
{ parameters: {objectid: "08438F2E01384371BFED6E282950C054"}}
但是在http客户端请求中未定义:
${this.parametersService.findbyobjectidlatestFilter.parameters.objectid}
如果移动构造函数中的所有变量,我可以在构造函数中获取对象:
但为什么我仍然未定义:
console.log(this.parametersService.findbyobjectidlatestFilter.parameters.objectid);
成员 findbyobjectidlatest$ 在构造函数之前初始化
您可以按照以下步骤进行
@Injectable({
providedIn: "root",
})
export class ConstructionObjectsDataService {
constructor(
private httpClient: HttpClient,
private parametersService: ParametersService
) {
}
getQuery() {
const vals = this.parametersService.findbyobjectidlatestFilter;
console.log(vals);
const parameters = vals.parameters;
console.log(parameters);
const objectid = parameters.objectid;
console.log(objectid);
const apiUrl = `${environment.apiUrl}`;
const URL_PATH = `${this.URL_PATH}`;
const objectid = `/findbyobjectidlatest?objectid=${objectid}`;
const url = apiUrl + URL_PATH + objectid ;
console.log(apiUrl, URL_PATH, objectid);
return this.httpClient.get<any>(url);
}
}
如果 parametersService 或其他参数在调用构造函数时尚未准备好,您可以从方法中获取查询