2017-05-24 13 views
1

Ionic 3で次のコマンドionic g page contactを使用して単純なページを作成すると、ファイルとページを正確にリンクする場所がわかりません。Ionic 3でページをインポートする必要があるのはどこですか?

この行にはsrc/app/app.module.tsのみがありますか?

import { ContactPage } from '../pages/contact/contact'; 

は、なぜ私は、その後providersdeclarationsにそれをプッシュする必要がありますか?私は、私のアプリが持つすべてのページのためにこれを行う必要がありますか?

このページへのリンクを作成したい場合は、ホームページのtypescriptファイルにもインポートする必要がありますか?

おかげ

答えて

2

あなたは

ionic g page testpage

を使用してページを作成するときに最初に私たちはapp.module.tsファイル

import { TestpagePage } from '../pages/testpage/testpage'; 

declarationsアレイとentryComponents配列

中でそれをインポートする必要があります10
declarations: [ 
    MyApp, 
    HomePage, 
    ListPage, 
    TestpagePage 
    ], 
    entryComponents: [ 
    MyApp, 
    HomePage, 
    ListPage, 
    TestpagePage 
    ], 

providersアレイにプッシュする必要はありません。例えば、あなたがして、ホームページからこのページに移動したい場合

- >インポートtestpage、

import { TestpagePage } from '../testpage/testpage';

とボタンのクリックイベントにファイルhome.ts

this.navCtrl.push(TestpagePage);

宣言: 宣言セクションでは、すべてのコンポーネントとd私たちが作成したディレクティブ。ここにそれらを含めないと、Angularが私たちのコードでそれらを認識できないため、それらを使用しようとするとエラーが発生します。

entryComponents: entryComponentsセクションでは、そのタイプによってのみロードされるコンポーネントを定義します。これは、ナビゲーションコントローラを介してロードされた のすべてであるため、すべてのページコンポーネントの場合です。

宣言的にロードされる(つまり、別のコンポーネントのテンプレートで参照される)コンポーネントは、entryComponents配列に含める必要はありません。 見てわかるように、宣言とentryComponentsセクションの両方でPageコンポーネントを定義する必要がある場合は、重複があります。 この別のentryComponentsセクションがある理由は、Angularが、アプリケーション内で実際に使用されているコンポーネント だけを含むアプリケーションのバンドルをコンパイルできるようにするためです。

プロバイダ: プロバイダセクションでは、依存関係注入のサービスを登録できます。アプリケーションモジュールでサービスを登録すると、アプリ内のすべての コンポーネントでサービスを使用できます。 ただし、ここにすべてのサービスを含める必要はありません。特定のコンポーネントのみのサービスを登録することもできます。@Component デコレータ。

ソース:それはページだ理由check this URL

+0

おかげ とタブについて、私は私のアプリにタブを追加したいとき、私は「イオングラムのページタブ」と入力する必要がありますが、それはだ、理解していません特定のページ? –

+0

それで、app.components.tsにすべてのページをインポートする必要はありませんか? app.module.tsにのみありますか? –

+0

Ionic gページタブ...プロジェクトにtabsという名前のページを作成します。タブ構造を作成しません。 –

関連する問題