Angular2(最终版本)组件无法通过服务中的observable进行通信

Angular2(最终版本)组件无法通过服务中的observable进行通信,angular,angular2-services,sharedservices,Angular,Angular2 Services,Sharedservices,我使用的是Angular v2.1,我试图让组件通过共享服务发送消息 我想首先将数据从第一个组件company.component.ts发送到第二个组件modal.component.ts 我不知道问题出在哪里(如果是在发送或接收数据时)。调试接收数据时,我发现一个订户对象: Subscriber {closed: false, syncErrorValue: null, syncErrorThrown: false, syncErrorThrowable: false, isStopped:

我使用的是Angular v2.1,我试图让组件通过共享服务发送消息

我想首先将数据从第一个组件
company.component.ts
发送到第二个组件
modal.component.ts

我不知道问题出在哪里(如果是在发送或接收数据时)。调试接收数据时,我发现一个订户对象:

Subscriber {closed: false, syncErrorValue: null, syncErrorThrown: false, syncErrorThrowable: false, isStopped: false…}
modal.service.ts
中:

import { Injectable } from '@angular/core';
import { Subject }    from 'rxjs/Subject';

@Injectable()
export class ModalService {
  private sharedCompanySource = new Subject<string>();

  sharedCompany = this.sharedCompanySource.asObservable();

  getCompany(){
    return this.sharedCompany;
  }

  setCompany(_company: any){
    this.sharedCompanySource.next(_company);
  }
}
import { ModalService }  from './modals/modal.service';
@Component({
    templateUrl: 'company.component.html',
    providers: [
        ModalService
    ]
})
export class CompanyComponent implements OnInit {
  constructor(private missionService: ModalService) {
     this.missionService.setCompany("hellooooooooooooooo");
  }
}
在第二个组件中,modal.component.ts:

import { ModalService }  from './modals/modal.service';
import { Subscription }         from 'rxjs/Subscription';
@Component({
    templateUrl: 'modal.component.html',
    providers: [
        ModalService
    ]
})
export class ModalComponent implements OnInit {
  subscription:Subscription;
  constructor(private missionService: ModalService) {
     this.subscription = missionService.sharedCompany.subscribe();
  }
}

两个组件都声明

providers: [
    ModalService
]
所以他们不共享服务。两者都有各自独立的ModalService实例。这就是提供商的目的

如果需要共享服务,请在其父模块的提供程序中声明


请注意,您也不会将任何回调传递给
subscribe()
,因此当它们开始共享同一服务时,不会发生任何事情。

这两个组件都声明

providers: [
    ModalService
]
所以他们不共享服务。两者都有各自独立的ModalService实例。这就是提供商的目的

如果需要共享服务,请在其父模块的提供程序中声明


请注意,您也不会将任何回调传递给
subscribe()
,因此当他们开始共享同一服务时,不会发生任何事情。

Ok。所以,请你有任何例子来看看它是如何工作的!:)我最终做到了,没有观察(只有简单的属性和setter,getter)Ok。所以,请你有任何例子来看看它是如何工作的!:)我最终做到了,没有观察(只有简单的属性和setter,getter)