我在所有组件中使用JSON对象。Angular中是否有任何全局声明和重用JSON对象?
否则我们将在所有组件中加载相同的对象?
我应该在哪里声明该对象以及如何在其他组件中调用它?
-
我正在维护主页组件中的加载功能,并在 home.html 中使用。
-
我正在维护用于获取值的WebserviceProvider。
但是我将在哪里声明和存储 JSON 对象以及如何重用其他组件?
我创建了AppCommonService,并在home.ts中使用了saveCateogry,并在其他组件中使用了retrieveCategory。下面的代码对我来说工作正常。
import { Injectable } from '@angular/core';
@Injectable(( export 类 AppCommonService {
categoryType : any[] = [];
constructor() {
}
saveCateogry(cat:any){
this.categoryType= cat;
}
retrieveCategory(){
return this.categoryType;
}
}
如果要定义一些在所有组件之间共享的数据,请构建服务。
我这里有一个简单的服务示例:https://blogs.msmvps.com/deborahk/build-a-simple-angular-service-to-share-data/
利用 Angular 服务,它们是用于存储数据和在组件之间传递数据的一种,并且作为输入和输出也很容易,您将陷入事件发射器意大利面条中,您也可以查看 ngrx 存储以将数据保存在一个地方。 但我建议您仅在中型到大型应用程序的情况下使用 NGRX,因为它会添加一些代码。
在 Angular 服务和 ngrx 中,您都将数据存储在一个位置,以便在组件之间传递。
也看看这个答案
委派:事件发射器或 Angular2 中的可观察
而这个
委派:事件发射器或 Angular2 中的可观察
更新
如果要在其他组件中使用服务数据,则可以在服务中拥有一个变量,然后将结果推送到该服务,您将在组件中获得结果到服务var,这将发出结果已被推送,然后可以通知另一个组件,或者您可以使用输入和输出事件发射器或行为或重放主题