2016-08-18 57 views
1

我有一个从服务调用函数的组件。将使用http的角度2服务的数据传递到组件

export class ZoomComponent { 
    constructor(private productService: ProductService){} 
    container: any; 
    product:ProductObj[]; 
    ngOnInit() { 
     this.product = this.productService.getProduct() 
    } 
} 

在服务中,我有一个http调用与订阅。我希望将http请求的结果重新调整到我的组件。

@Injectable() 
export class ProductService { 

    product:ProductObj[]; 
    constructor(private http: Http) { } 

    getProduct() {   
     return this.http.get('./friends.json').map((res:Response) => res.json()) .subscribe(
       data => this.product = data 
       //function(data){console.log(data)} 
      )  
     } 
} 

我是angular2的新手。我希望产品变量作为我的组件上的http请求的结果返回。不过,虽然给予的console.log,可观察的对象是与我的响应数据

+1

使用观测并订阅他们的组件。另见https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#bidirectional-service –

回答

3
@Injectable() 
export class ProductService { 
    constructor(private http: Http) { } 

    getProduct() {   
     return this.http.get('./friends.json') 
     .map((res:Response) => res.json())  
    } 
} 

而在组件返回:在服务

constructor(private productService: ProductService) {} 

ngOnInit() { 
    this.productService.getProduct().subscribe(
     data => console.log(data) 
    ) 
} 
+0

非常感谢:) – Varada

+0

没问题!不要忘记将此标记为答案;) –

+0

@ stijn.aerts如果我们在服务中订阅,该怎么办?我们如何返回组件中的数据? – Sanket

相关问题