我在所有组件中使用JSON对象。在Angular中是否有任何全局声明和重用JSON对象?
否则我们将在所有组件中加载相同的对象?
我应该在哪里声明该对象以及如何在其他组件中调用它?
我在HomePage组件中维护onload函数,我在home.html中使用。
我正在维护WebserviceProvider以获取值。
但是我将在哪里声明和存储JSON对象以及如何重用其他组件?
答案 0 :(得分:1)
我创建了AppCommonService,我在home.ts中使用了saveCateogry,我在其他组件中使用了retrieveCategory。下面的代码对我来说很好。
import { Injectable } from '@angular/core';
@Injectable() 导出类AppCommonService {
categoryType : any[] = [];
constructor() {
}
saveCateogry(cat:any){
this.categoryType= cat;
}
retrieveCategory(){
return this.categoryType;
}
}
答案 1 :(得分:0)
如果要定义一些在所有组件中共享的数据,请构建服务。
我在这里有一个简单的服务示例:https://blogs.msmvps.com/deborahk/build-a-simple-angular-service-to-share-data/
答案 2 :(得分:0)
利用Angular Services,它们是一个用于存储数据和在组件之间传递数据的人,也很容易,因为输入和输出你会陷入事件发射器的Spaghetti中,你也可以查看ngrx存储来保存数据一个地方。但我建议你只在中型到大型的应用程序中使用ngrx,因为它会增加一些代码。
在Angular服务和ngrx中,您将数据存储在一个地方,以便在组件周围传递。
另请看一下这个答案
Delegation: EventEmitter or Observable in Angular2
和这个
Delegation: EventEmitter or Observable in Angular2
更新
如果你想在其他组件中使用服务数据,你可以在服务中拥有一个变量,然后将结果推送到你将在组件中获得的服务var,这将发出结果已经推送,然后可以通知其他组件,或者您可以使用输入和输出事件发射器或行为或重播主题