2017-05-24 20 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页面标签...将在项目中创建一个名为标签的页面..它不会创建标签结构 –