2017-07-30 23 views
2

私は、ページがナビゲートされるたびにフックする必要のあるコンポーネントをページに持っています。それはマップマップを含んでおり、ユーザーが登録ページを使用して登録し、キーボードをプルアップして、地図の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

Yer、あなたは私の後にいないかもしれませんか?ページはコンポーネントですが、ページはコンポーネントの拡張であり、ページにはionViewDidEnterがありますか?コンポーネントにはこれらのフックhttps://angular.io/guide/lifecycle-hooksしかありません。ご覧のとおり、ionViewDidEnterはありません。 –

関連する問題