2017-05-24 82 views
1

我不是很明白,當我使用以下命令ionic g page contact創建一個帶有Ionic 3的簡單頁面時,我究竟有哪些鏈接文件和頁面?哪裏需要在Ionic 3上導入頁面?

只有在src/app/app.module.ts這行?

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

爲什麼我需要推動它providersdeclarations呢?我必須爲我的應用將具有的所有頁面執行此操作?

如果我想創建一個鏈接到這個頁面,我也必須將它導入到主頁的打字稿文件中?

感謝

回答

2

當您使用

ionic g page testpage

首先我們需要將其導入app.module.ts文件

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

declarations陣列和entryComponents陣列頁面

declarations: [ 
    MyApp, 
    HomePage, 
    ListPage, 
    TestpagePage 
    ], 
    entryComponents: [ 
    MyApp, 
    HomePage, 
    ListPage, 
    TestpagePage 
    ], 

我們不需要將它推入providers陣列。並舉例來說,如果要導航到主頁此頁面,然後

- >進口testpage在home.ts文件

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

和按鈕的單擊事件,

this.navCtrl.push(TestpagePage);

聲明: 在聲明部分,我們需要包含所有組件和d我們創建的指令。如果我們不在這裏包含它們,當我們嘗試使用它們時我們會得到一個錯誤,因爲Angular在我們的代碼中將無法識別它們。

entryComponents: 在entryComponents部分,我們定義了任何只由其類型加載的組件。所有頁面組件都是這種情況,因爲這些都是通過導航控制器加載的 。

聲明式加載的組件(即在另一個組件的模板中被引用)不需要包含在entryComponents數組中。 所以,你可以看到我們有一些重複的地方,我們必須在聲明和entryComponents部分中定義頁面組件。 擁有這個單獨的entryComponents部分的原因是,Angular可以爲應用程序編譯一個包,該包僅包含在應用程序中實際使用的組件 。

提供商: 在供應商部分,我們可以註冊依賴注入服務。當您在應用程序模塊中註冊服務時,它可以在您的應用程序的所有 組件中使用。 但是,我們不需要在這裏包含我們所有的服務,我們也可以決定僅爲其裝飾器中的特定組件註冊服務。

來源:check this URL

+0

感謝 約在標籤,我不明白爲什麼它是一個網頁,當我想添加標籤,以我的應用程序,我必須鍵入「離子摹頁標籤」,但它是一個特定頁面? –

+0

因此,我不必將app.components.ts上的所有頁面都導入?只在app.module.ts中? –

+0

離子g頁面標籤...將在項目中創建一個名爲標籤的頁面..它不會創建標籤結構 –