2017-07-30 66 views
2

我在頁面中有一個組件,每次頁面導航時都需要掛鉤。它包含一個mapbox地圖,我發現如果用戶使用註冊頁面進行註冊並拉起鍵盤,然後返回地圖頁面,地圖div就會變小,因爲用戶在他們的鍵盤上拉開了鍵盤電話。我希望這是有道理的?Ionic 2/Angular 2組件生命週期掛鉤

我已經嘗試了這裏列出的所有鉤子https://angular.io/guide/lifecycle-hooks,但每次頁面導航時都不會觸發它們。

任何幫助將是偉大的。

+0

發現任何成功? – robbannn

+0

還沒有,可能不得不使用頁面事件掛鉤來調用組件中的方法。不是很乾淨。 –

回答

3

嘗試:ionViewDidEnter(),連同@ViewChild。用@ViewChild您可以訪問組件。

從離子docs
。「ionViewDidEnter()會火的時候,頁面已全面進入,現在是活動頁面此事件將觸發,無論是第一次加載或緩存頁面」

這將使您可以在每次瀏覽頁面時調用組件上的函數。

父頁TS:

@Component({ 
    selector: 'parent-page', 
    templateURL: 'parent-page.html' 
}) 
export class ParentPage{ 
    @ViewChild('myComponent') myComponent; 

    constructor(){} 

    ionViewDidEnter(){ 
     this.myComponent.someFunc(); 
    } 

    ... 
} 

父頁HTML:

<ion-content> 
    ... 
    <child-component #myComponent></child-component> 
    ... 
</ion-content> 
+0

ionViewDidEnter只觸發頁面而不是組件?我想我將不得不使用頁面事件來調用組件中的方法? –

+1

一個頁面是一個組件 – robbannn

+0

你,你不跟着我?一個頁面是一個組件,但一個頁面是一個組件的擴展,只有一個頁面有ionViewDidEnter?組件只有這些鉤子https://angular.io/guide/lifecycle-hooks。你可以看到沒有ionViewDidEnter。 –

相關問題