在angular2中,我希望我的组件与另一个组件通信,这怎么可能?
我基本上有一个组件需要对另一个组件进行广播,以便该组件可以自行更新。
我只知道如何在角度v1中执行此操作。
我没有要显示的代码,因为我不知道如何做到这一点。
组件是分开的而不是嵌套的。 我怎样才能让他们互相交谈,例如事件或某事?
答案 0 :(得分:0)
我有一个定义登录可观察的登录服务:
private loggedIn$: Subject<LoggedIn>;
constructor() {
this.loggedIn$ = <Subject<LoggedIn>>new Subject();
}
然后我定义了两个方法set和get:
setLoggedIn(loggedIn: LoggedIn): void {
this.loggedIn$.next(loggedIn);
}
getLoggedIn(): Observable<LoggedIn> {
return this.loggedIn$.asObservable();
}
登录类:
export interface ILoggedIn {
email: string;
password: string;
error: string;
}
export class LoggedIn implements ILoggedIn {
email: string;
password: string;
error: string
constructor(email: string, password: string, error: string) {
this.email = email;
this.password = password;
this.error = error;
}
}
通过这样,您可以通过简单地订阅observable来通知用户在您的应用中的任何位置登录:
constructor(
private ls: LoginService,
private ss: SettingsService) {
}
ngOnInit() {
this.ls.getLoggedIn()
.subscribe(
loggedIn => {
this.items = this.as.getLoggedInMenu();
var us = this.ss.getUserSettings();
this.ts.setTheme(us.theme);
});
}