我有一个聊天机器人组件,我在 app.component.html 中对其进行充电以便在任何地方访问它。
<app-chatbot [enable]="this.enableSerenia"></app-chatbot>
在我的聊天机器人组件中,我有多个可以使用从外部访问的变量@Input()
;
export class ChatbotComponent implements OnChanges {
@Input() enable: boolean = false;
@Input() actionsList: any[] = [];
@Input() messagesList: any[] = [];
@Input() showDialog: boolean = false;
@Input() newNotification: boolean = false;
}
在另一个组件中,我需要更新一些聊天机器人变量。因此,我在另一个组件的构造函数中声明了它,并像这样更新变量:
constructor(
private serenia: SereniaChatbotComponent // EDISSYUM - NCH01 Implémentation SerenIA
) {
this.serenia.newNotification = true;
}
但是该变量在我的前端没有更新。当我从另一个组件更新聊天机器人变量时,我需要如何“更新”我的前端?
我使用的是 Angular 16
为聊天机器人创建专用服务。确保该服务位于根目录中,以便可以从应用程序中的任何位置访问它。
我们初始化一个主题和一个可观察对象,这样做的原因是为了触发聊天机器人组件中的变化检测。
ChatBotService
在应用组件中使用。我们使用然后在应用程序组件中绑定此服务属性。
您可能看不到值刷新,因此我们需要从聊天机器人组件触发变更检测。我们使用之前创建的可观察对象来实现这一点。
现在只需从应用程序中的任何位置修改值即可。