gpt4 book ai didi

javascript - 如何访问函数之外的数据 - Angular/Javascript

转载 作者:行者123 更新时间:2023-12-03 00:58:05 24 4
gpt4 key购买 nike

我正在从另一个文件(组件)加载数据,当我从函数内对其进行控制台时,它会在事件发生后起作用:

  updateSub(data) {
console.log('attempting to print the subsid array' +
this.engagementService.orgSubSidNames)
}

当我尝试在这个范围之外但在我的 ngOnit 范围内调用时它控制台为空:

console.log('attempting to print the subsid array initially' + 
this.engagementService.orgSubSidNames)

所有代码都包含在我的 ngOnit 中。我还在我的构造函数中包含engagementService,这就是我访问它的方式:

 export class EngagementFilterComponent implements OnInit {

constructor(private builder: FormBuilder, public engagementService:
EngagementService) { }

ngOnInit(): void {

console.log('attempting to print the subsid array initially' +
this.engagementService.orgSubSidNames)

}
}

在参与服务中,我像这样进行 http 调用:

    organizationSubsidiaries(sfid: string) {
const url = `${this.baseURL}/${ENDPOINTS.organizations}/${this.organization.id}/${ENDPOINTS.subsidiaries}`;
return this.http.get(url).map(res => res.json());
}

然后,当浏览器加载时,它会像这样被调用,我从响应中创建我想要的数组:

        this.organizationSubsidiaries(id)
.subscribe(data => {

let subsidiaryNames = []
data.forEach(sub => {
console.log(sub.SubsidiaryName)
subsidiaryNames.push(sub.SubsidiaryName)
})
subsidiaryNames = subsidiaryNames.filter(this.onlyUnique);
this.orgSubSidNames = subsidiaryNames;
console.log('data from subsidiaries' + JSON.stringify(this.orgSubSidNames))

});

因此,使用可观察量的另一个调用的示例(我可能缺少的)在这里:

    allEngagementAreas(): Observable<IBaseEngagement[]> {
const url = `${this.baseURL}/${ENDPOINTS.engagementAreas}`;
return this.http.get(url).map(res => res.json() as IBaseEngagement[]);
}

我想要在 UI 中显示的数组。

我能做什么?

最佳答案

您需要的是一种让组件知道 API 调用何时完成的方法。为此,您可以从服务返回一个可观察对象并在组件中订阅它。

例如,在您的服务中,您可以:

public getOrgSubsidiaries(id) {
return this.organizationSubsidiaries(id).map(data => {
let subsdiaryNames = [];
// your logic
return subsdiaryNames;
});
}

然后,在您的组件内,您可以执行以下操作:

ngOnInit(): void {
this.engagementService.getOrgSubsidiaries(id).subscribe(data => {
this.orgSubsidiaries = data;
});
}

关于javascript - 如何访问函数之外的数据 - Angular/Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52734853/

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