てみ構築あなたのサービスこうして:
サービス:
@Injectable()
export class MyService {
customerUpdate$: Observable<any>;
private customerUpdateSubject = new Subject<any>();
constructor() {
this.customerUpdate$ = this.customerUpdateSubject.asObservable();
}
updatedCustomer(dataAsParams) {
this.customerUpdateSubject.next(dataAsParams);
}
}
は、プロバイダにMyService
を追加することを忘れないでください。
(これが事実であるならば)、あなたのクライアントをアップデート
、あなたはこのような何か:
コンポーネント(トリガ1):
constructor(private myService: MyService) {
// I'll put this here, it could go anywhere in the component actually
// We make things happen, Client has been updated
// We store client's data in an object
this.updatedClient = this.myObjectWithUpdatedClientData; // Obj or whatever you want to pass as a parameter
this.myService.updatedCustomer(this.updatedClient);
}
コンポーネント(1を購読は)です:私はあなたがデータを渡すためにしようとしている、理解し何から
this.myService.customerUpdate$.subscribe((updatedClientData) => {
// Wow! I received the updated client's data
// Do stuff with this data!
}
);
1つのコンポーネントから別のコンポーネントへお客様のクライアントのデータを取得し、アプリケーションを介して別のコンポーネントに送信します。だから私はこのソリューションを投稿したのです。
サブスクリプションの他のタイプに興味があるなら
、これを読んで:
Angular 2 special Observables (Subject/Behaviour subject/ReplaySubject)
それはそうすべきですか?新しいBehaviorSubject
im gettin a error指定されたパラメータが呼び出しターゲットのシグネチャと一致しません。 – None
解決策があります。初期値が必要ない場合は、BehaviorSubjectを使用しないでください。 – estus