我在哪里可以在Ionic 3上导入页面?

时间:2017-05-24 13:10:06

标签: ionic-framework ionic3

我不是很了解,当我使用以下命令ionic g page contact创建一个带有Ionic 3的简单页面时,我究竟要在哪里链接文件和页面?

仅在带有此行的src / app / app.module.ts上?

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

为什么我需要在providersdeclarations上推送它?我必须为我的应用程序所有页面执行此操作吗?

如果我想创建一个指向此页面的链接,我还必须在主页的打字稿文件中导入它?

由于

2 个答案:

答案 0 :(得分: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数组。例如,如果您想从主页导航到此页面,那么

- >导入home.ts文件中的测试页

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

和按钮点击事件,

this.navCtrl.push(TestpagePage);

声明: 在声明部分,我们需要包含我们创建的所有组件和指令。如果我们不在此处包含它们,当我们尝试使用它们时我们会收到错误,因为Angular不能够在我们的代码中认出它们。

<强> entryComponents : 在entryComponents部分中,我们定义了仅由其类型加载的任何组件。所有Page组件都是这种情况,因为这些都是 通过导航控制器加载。

以声明方式加载的组件(即在另一个组件的模板中引用)不需要包含在entryComponents数组中。 因此,您可以看到我们有一些重复,我们必须在声明和entryComponents部分中定义我们的Page组件。 拥有这个单独的entryComponents部分的原因是Angular可以为仅包含组件的应用程序编译包 实际上在应用程序中使用。

<强>提供商: 在providers部分,我们可以注册依赖注入服务。在App Module中注册服务时,可以在所有应用程序中使用它 您应用中的组件。 但是,我们不需要在此处包含我们的所有服务,我们也可以决定仅为其@Component中的特定组件注册服务 装饰器。

来源:check this URL

答案 1 :(得分:1)

我们每次创建页面时都不需要将页面导入app.module.ts,这是反DRY,无聊和app.module.ts变胖

使用新的离子cli,我们可以生成如下页面:

ionic generate page pagename

这将生成页面以及相应的模块pagename.module.ts。然后,您可以在STRING中按名称从任何其他页面引用它。例如:

this.navCtrl.push("pagename");