Ionic 2升级文件结构

时间:2016-12-09 06:43:43

标签: ionic2

我正在将我的应用从Ionic 2.0.0-beta.20升级到Ionic 2.0.0-rc.3

guide说明如下:

  
      
  • 导入并添加custom componentspipes中的每一个   src/app/app.module.ts中的声明数组。

  •   
  • 导入并将providers中的每个providers添加到src/app/app.module.ts数组中   providers

  •   
  • 删除对pipesdirectives@Component数组的任何使用   Ionic 2.0.0-beta.20

  •   

问题1

在旧的app/pages版本中,所有工件都位于Ionic 2.0.0-rc.3文件夹中。对于src/pages,它们是否应该只包含所有页面的directives文件夹,还是应该在其他地方分开?

问题2

如果我从每个页面的@Component部分删除所有directives,那么@Component({ templateUrl: 'review.html', providers: [RatingService, JobService, UtilityService], directives: [REACTIVE_FORM_DIRECTIVES, RatingComponentUpdateable, ControlMessages] }) 将在哪里定义?

e.g。

$j

1 个答案:

答案 0 :(得分:1)

关于问题1 ,实际上您可以决定项目结构的方式,并根据需要将文件放在所需的位置(唯一的更改将在您在导入中使用的路径中)语句)。 Ionic的默认项目结构根据类型组织事物,所以默认情况下你会有这样的事情:

src
  ...
  pages
  pipes
  providers
  ...

找出放置位置的最简单方法之一就是使用ionic generate ... customName命令,其中三个点可以是pageproviderpipedirective。这将创建工件并将其放置在应有的位置。

您还可以查看conference app以了解Ionic团队如何组织项目以及所有内容的位置。

话虽这么说,我一直致力于根据功能组织事物的项目,所以项目结构是这样的:

src
  feature1
    page1FromFeature1
    page2FromFeature1
    modelFromFeature1
    providerFromFeature1

  feature2    
    ...

  shared
    providers
    pages
    directives
    pipes

这实际上是Angular2建议在Angular2 Style Guide中组织项目的方式。

关于问题2 ,指令应该包含在 NgModule声明数组中,如下所示:

@NgModule({
  declarations: [
    MyApp,

    // Pages
    ...

    // Pipes
    ...,

    // Directives
    ...
  ],
  imports: [
    IonicModule.forRoot(MyApp)
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,

    // Pages
    ...
  ],
  providers: [
                // Providers
                ...
             ]
})
export class AppModule {}