구성 요소 상호 작용의 경우 서비스에 의지하기 위해 서비스의 빠른 이름을 사용하려고하지만 유스 케이스에 의미있는 것을 사용하십시오. 버튼 구성 요소에서 이제
.
.
.
export class Component1 ... {
constructor(private myService: MyService) { }
buttonClick() {
this.myService.setData("Pass anything you want here");
}
}
2 개 클래스 구성 요소 1 이제
import { Subject } from 'rxjs';
@Injectable()
export class MyService {
private dataMessenger = new Subject<any>();
getData(): Subject<any> {
return this.dataMessenger;
}
setData(newData: any) {
this.dataMessenger.next(newData);
}
}
당신은 예를 들어, 모듈에서
MyService
을 등록해야
.
.
.
export class Component2 ... {
variableOfChild2Component: any;
constructor(private myService: MyService) { }
ngOnInit() {
this.myService.getData()
.subscribe(data => {
// data argument contains whatever you pass to MyService.setData()
// function inside your Component1 class when the button is clicked
this.variableOfChild2Component = data;
});
}
}
의 AppModule
@NgModule({
.
.
.
providers: [ ..., MyService, ... ]
})
export class AppModule { }
고마워. :). 그것의 나를 위해 일하고 –
하지만 내가 Component2를 새로 고칠 때, 그 내부에 가입하지 않을거야. 나는 component2를 새로 고침 할 때 데이터가 구독 한 후에 있어야한다. –
다음 당신은 어딘가에 그것을 유지하고 적절하다고 생각할 때 그것을 검색, 그 다른 질문 영장을 추가하십시오 – Dummy