2017-06-12 137 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()裝飾組件之間的通信層次