'모달'이라는 모든 요소에 데이터를 보내려고하지만 그 중 하나만 메시지를 수신합니다.관찰 할 수있는 모든 가입자 요소에 데이터 전송 - angular2
@Injectable()
export class ModalService {
private _isOpen = new Subject();
isOpen$ = this._isOpen.asObservable();
open(id: string) {
this._isOpen.next({isOpen: true, id: id});
}
close(id: string) {
this._isOpen.next({isOpen: false, id: id});
}
및 구성 요소 :
import {Component, Input} from 'angular2/core';
import {Observable} from 'rxjs/Observable';
import {Subject} from 'rxjs/Subject';
import {ModalService} from './modal.service';
@Component({
selector: 'modal',
template: `
<ng-content></ng-content>`,
styleUrls: ['app/workshop/modal.component.css'],
providers: [ModalService],
})
export class ModalComponent {
@Input() ID;
private show = false;
constructor(private _modal: ModalService) {
this._modal.isOpen$.subscribe(
(value) => {
console.log(value)
if(this.ID === value.id) {
this.show = value.isOpen;
}
}
);
}
open() {
this._modal.open(this.ID);
}
close() {
this._modal.close(this.ID);
}
}
모두 잘 작동하지만 난 어떤 다른 구성 요소에 서비스를 주입하고 가입자의 나머지 메시지를 전송하고자 할 때 문제가 나타납니다
나는 서비스가 있습니다. 모달의 모든 요소 유형에 대해 메시지를 공유 할 수있는 방법을 모르겠습니다. DOM 요소를 후크 할 수 있지만 구성 요소에 문제가 있습니다. 내가 어떻게 '모든 모달'요소를 관찰 할 수 있도록 연결시킬 수 있습니까? 도움
'ModalService'는 어디에 제공합니까? 주입하는 모든 구성 요소 또는 전역 적으로 만 ('bootstrap()'또는 루트 구성 요소)? –
내 게시물 (구성 요소 코드)을 편집합니다. 모든 구성 요소에 서비스를 주입합니다. – Verri