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

时间:2017-07-08 06:54:27

标签: angular typescript ionic-framework

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

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

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

  1. 我在HomePage组件中维护onload函数,我在home.html中使用。

  2. 我正在维护WebserviceProvider以获取值。

  3. 但是我将在哪里声明和存储JSON对象以及如何重用其他组件?

3 个答案:

答案 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,这将发出结果已经推送,然后可以通知其他组件,或者您可以使用输入和输出事件发射器或行为或重播主题