我有两个组件,分类ChatPage
和HomePage
。
由于注入了许多服务,类ChatPage
有一个很大的构造函数,还有一个数组:
IonicPage()
@Component({
selector: 'page-chat',
templateUrl: 'chat.html',
providers: [ChatService]
})
export class ChatPage implements OnInit, OnDestroy{
msg:any[];
班级HomePage
,这是另一个组成部分:
@Component({
selector: 'page-home',
templateUrl: 'home.html',
providers: [ChatService]
})
export class HomePage {
chatRoot = ChatPage;
settingsRoot = SettingsPage;
constructor(private chatService: ChatService) {
}
onReset(){
//this.chatRoot.msg = [];
}
}
我想将消息重置为[]
。
但是,在目前的状态下,我收到的投诉是msg
未知。
答案 0 :(得分:1)
在上面的示例中,由于ChatService由两个组件共享。 您可以在该服务中使用msg变量并从两个组件中修改它。 这样,它可以在两个组件中使用。
另一种方法是使用@Input()装饰器,如果有一个包含A和B组件的父组件。
答案 1 :(得分:1)
您不初始化ChatPage
或调用该组件。示例中的chatRoot = ChatPage
变量只是类定义的副本,其中msg
从未初始化。
组件可以通过多种方式进行通信或共享信息。有关详细信息和示例,请参阅this page of the documentation。最常见的方法是:
@Input()
装饰器进行组件之间的分层通信