【发布时间】:2017-09-07 08:56:09
【问题描述】:
我正在尝试在角度 4 的组件之间传递数据。 我不想使用输入\输出。 在 Homecomponent 我想将数据推送到服务中,在 page2 组件中我想从服务中获取数据。 我只是看着 observable 和 subject 的方式,我试图实现它但没有成功。
主页组件
import { ClientService } from './../clinet-service.service';
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'page-home',
template: 'pages/home/home.html',
})
export class HomeComponent implements OnInit {
clients = ['john', 'jane']
clientFound = false
// constructor(private navController: NavController) { }
constructor(private clientService: ClientService) {
}
openClient(client) {
}
ngOnInit() {
this.clientService.subject.next([
{ name: 'Harold', age: 35 }
]
);
}
}
page2组件
import { ClientService } from './../clinet-service.service';
import { Component } from '@angular/core';
@Component({
selector: 'page-2',
template: '{{clients}}'
})
export class Page2Component {
client:any;
constructor( private clientService: ClientService) {
}
ngOnInit(){
debugger
let clients = this.clientService.observable.subscribe(clients => console.log(clients));
}
}
客户服务
import { Injectable, OnInit, OnDestroy } from '@angular/core';
import { Subject } from 'rxjs/Subject';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
import { Observable } from "rxjs/Observable";
@Injectable()
export class ClientService {
subject: Subject<any> = new Subject<any>();
observable: Observable<any> = this.subject.asObservable();
}
实际上我不喜欢这种实现方式,因为我尝试制作简单的东西,例如将数据推送到服务并在其他组件中获取它,但我做不到。
【问题讨论】:
-
错误是什么
-
我在 page2 中什么也没看到
-
你没有在控制台中得到任何东西?
-
是的,我什么也没得到
-
当您在 ngOnInit 方法中从 Page2Component 中删除调试器行时会发生什么?
标签: angular angular2-components