我在构造函数中推送消息的位置?(角度,可观察,主题)



我有一个MessagesService,在那里我可以发送消息和获取消息:

export class MessagesService {
constructor() { }
private subject = new Subject<any>();
sendMessage(message: string): void {
this.subject.next({ text: message });
}
clearMessages(): void {
this.subject.next();
}
getMessage(): Observable<any> {
return this.subject.asObservable();
}
}

在MessagesComponent中,我调用getMessage方法:

export class MessagesComponent implements OnInit {
message: any = {};
subscription: Subscription;

constructor(public messagesService: MessagesService) {
this.subscription = this.messagesService.getMessage().subscribe(message => { this.message = message; });
}

也在其模板中:

{{message?.text}}

现在,在另一个组件中,我使用sendMessage(在.ts文件中(并在其中放入一个字符串,我调用它的模板

现在我的问题是:把它放在这个文件的构建者的括号里正确吗:

constructor(private heroService: HeroService, private route: ActivatedRoute, private enemyService: EnemyService,
public messagesService: MessagesService) {
this.subscription = this.messagesService.getMessage().subscribe(message => {
if (message) {
this.messages.push(message);
} else {
// clear messages when empty message received
this.messages = [];
}
});
}

Angular中有一种我们称之为生命周期挂钩的东西。可以在构造函数或"ngOnInit"中添加订阅,以确保组件已经初始化。

最新更新