javascript - 在以角度 4 渲染函数后从服务共享数据到组件
问题描述
我有服务,在服务中,我有一个设置图表数组的“cohortTabsResult”方法。我想在“chart.component”中使用这个数组
export class CohortService {
public charts: Array<any>;
cohortTabsResult(obj){
this.charts = []
const subscription = this.cohortDataReq(obj).subscribe(res => {
if(res.status !== 500){
const dataObj = {
definedChart: obj.graph_type,
definedChartData: []
};
this.charts.push(dataObj);
const response = res.json()
//console.log(response)
if (response.error) {
//this.isLoaded = false;
}
else{
Array.prototype.forEach.call(response.data, dataRes => {
const newData = this.getChartDataFormat(dataRes, obj.graph_type, "userType")
dataObj.definedChartData = _.cloneDeep(newData);
});
}
}
});
}
}
这是我的chart.component 这里我得到的是空数组。
export class ChartCohortComponent implements OnInit{
charts: any;
constructor(private cohortService: CohortService, private route:
Router, public activatedRoute: ActivatedRoute) {
this.charts = this.cohortService.charts;
}
ngOnInit(){
console.log("ch", this.charts)
}
}
解决方案
将 CohortService 导入您的组件,将其添加到 @component 中的提供程序,现在您可以访问服务内的变量。:D
import { CohortService } from '../../cohort.services'; // whatever the path is..
@Component({
selector: '',
templateUrl: '',
styleUrls: [''],
providers: [CohortService]
})
export class ChartCohortComponent implements OnInit{
charts: any;
constructor(private cohortService: CohortService, private route:
Router, public activatedRoute: ActivatedRoute) {
this.charts = this.cohortService.charts;
}
ngOnInit(){
console.log("ch", this.charts)
}
}
推荐阅读
- c - 使用 dsPIC33E 的 FFT 不返回频率
- autodesk-forge - Forge 查看器:setNavigationLock 在 BimWalk 模式下无法正常工作
- php - Apache 服务器不加载扩展(Windows 10、PHP 8.0.12、Apache 2.4.46、(WAMP3.2.3))
- c# - 如何重新排列列表索引
- arules - 在新数据上使用来自规则的关联
- pandas - 是否有一种简单的方法可以在熊猫框架中跨行选择以创建新列?
- flutter - 如何为位置因布局更改而更改的 Flutter 小部件设置动画
- java - 为什么 getRoadtaxPrice() 函数没有得到 typeVehicle 输入值?
- reporting-services - SSRS Get-RsCatalogItemRole powershell 命令未返回正确信息
- google-cloud-platform - 从 GCP 存储桶下载 6.5m 对象的更快方法