2017-07-08 75 views
-1

我在所有组件中都使用JSON对象。 Angular中是否有全局声明和重用JSON对象?如何使用Angular保存并获取其他组件中的数据

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

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

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

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

但是我在哪里申报和存储JSON对象以及如何重新使用其他组件?

+0

[有没有这样的事情作为一个 “JSON对象”(http://benalman.com/news/ 2010/03/theres-no-such-thing-as-a-json /) – Andreas

+0

你是如何从http获取json对象的? – CharanRoot

+0

@ jonnysai,请检查下面的代码。我正在使用Web服务并获取响应json对象。从后端我回来的对象。getCategoryDe​​tails(){ 返回this.http.get('http://ip/ramu/api/api/JsonServices.php?action = getcategories') .map((res:Response)=> res.json() ); } –

回答

0

我已经创建了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; 
} 

}

0

如果要定义在所有组件之间共享的一些数据,请构建一个服务。

我这里有一个简单的服务,例如:https://blogs.msmvps.com/deborahk/build-a-simple-angular-service-to-share-data/

+0

getCategoryDe​​tails(){ return this.http.get('ip/ramu/api/api/...') .map((res:Response)=> res.json()); } 上面的代码我使用在webservice.ts ngOnInit(){ this.wsp.getCategoryDe​​tails()订阅(数据=> { this.categoryType =数据; 。}); } 上面的代码我已经在home.ts 使用,但我想使用其他部件 –

0

。利用角服务,他们是一个用来存储数据和组件之间传递数据,也容易作为输入和输出,你会陷入事件的面条发射器,你也可以看看ngrx商店在一个地方保存数据。但是我建议你只在中大型应用程序的情况下使用ngrx,因为它增加了一些代码。

在Angular服务和ngrx中,您都将数据存储在一个地方,以便在组件周围传递。

也看看这个答案

Delegation: EventEmitter or Observable in Angular2

Delegation: EventEmitter or Observable in Angular2

更新

如果你想使用你可以可以其他组件的服务数据在服务中有一个变量,然后将结果推送到您将获得的服务i n组件到服务变量将发出的结果已被推动,然后其他组件可以通知或您可以使用输入和输出事件发射器或行为或重播主题

+0

getCategoryDe​​tails这个响应(){ 返回this.http.get( 'IP /拉姆/ API/API/...') .MAP ((res:Response)=> res.json()); } 上面的代码我使用在webservice.ts ngOnInit(){ this.wsp.getCategoryDe​​tails()订阅(数据=> { this.categoryType =数据; 。}); } 上面的代码我已经在home.ts 中使用,但我想在其他组件中使用此响应 –

+0

更新和检查 –

相关问题