我有一个组件类,我在点击时存储数据。如果单击该按钮,我将数据存储在空数组中。 clickedData = []
我需要在不同的模板中使用此 clickedData 。同
<div *ngIf ="clickedData">
。怎么办?
答案 0 :(得分:2)
1)您必须为其使用共享服务。
<强> sharedService.ts 强>
export class sharedservice(){
public clickData: any[] = [];
store(data){
this.clickData=data;
}
getData(){
return this.clickData;
}
}
2)导入&amp;在根模块中注册服务。
import {sharedservice} from 'relativepath';
NgModule({
imports:[...]
...
providers: [sharedservice]
})
3)将服务注入目标组件。
import {sharedservice} from 'relativepath';
export class AppComponent{
constructor(private ss: sharedservice){}
}
4)如图所示在模板中使用ss变量(例如appcomponent.html)
<button (click)="ss.store(whatever_data_you_want_to_store)"> save </button>
5)在其他组件html中,使用如下,
<div *ngFor="let item of ss.getData()">...</div> //don't forget to inject into constrictor