如何使用 Angular 保存和获取其他组件中的数据



我在所有组件中使用JSON对象。Angular中是否有任何全局声明和重用JSON对象?

否则我们将在所有组件中加载相同的对象?

我应该在哪里声明该对象以及如何在其他组件中调用它?

  1. 我正在维护主页组件中的加载功能,并在 home.html 中使用。

  2. 我正在维护用于获取值的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,这将发出结果已被推送,然后可以通知另一个组件,或者您可以使用输入和输出事件发射器或行为或重放主题

最新更新