2017-06-12 207 views
0

我有两个组件类A和B.从另一个组件类访问组件类变量

由于注入许多服务,A类有一个很大的构造函数。和在B类等

IonicPage() 
@Component({ 
    selector: 'page-chat', 
    templateUrl: 'chat.html', 
    providers: [ChatService] 
}) 
export class ChatPage implements OnInit, OnDestroy{ 
    msg:any[]; 

阵列这就好比是

@Component({ 
    selector: 'page-home', 
    templateUrl: 'home.html', 
    providers: [ChatService] 
}) 
export class HomePage { 

    chatRoot = ChatPage; 
    settingsRoot = SettingsPage; 

constructor(private chatService: ChatService) { 

} 

onReset(){ 
    //this.chatRoot.msg = []; 

} 
} 

另一个分量i希望重置MSG为[]。在当前状态,我得到complan,我的味精是未知的,

+0

你不会在其他组件的组件分配给变量,你可以在homePage中执行ViewChild和实例,或为msg创建模型 – alehn96

回答

1

在上面的例子中,因为ChatService被两个组件共享。 您可以在该服务中拥有msg变量,并从两个组件对其进行修改。 这种方式可以在两个组件中使用。

另一种方法是使用@Input()装饰器,如果有一个父组件同时包含A和B组件。

1

您不初始化ChatPage或调用组件。你的例子中的chatRoot = ChatPage变量只是类定义的副本,其中msg从未初始化。

组件可以通过多种方式进行通信或共享信息。有关详细信息和示例,请参阅this page of the documentation。最常见的方法是:

  • 保持公共信息访问通过服务
  • 使用一个@Input()装饰组件之间的通信层次