我正在将我的应用从Ionic 2.0.0-beta.20
升级到Ionic 2.0.0-rc.3
。
guide说明如下:
导入并添加
custom components
和pipes
中的每一个src/app/app.module.ts
中的声明数组。导入并将
providers
中的每个providers
添加到src/app/app.module.ts
数组中providers
。删除对
pipes
,directives
和@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
答案 0 :(得分:1)
关于问题1 ,实际上您可以决定项目结构的方式,并根据需要将文件放在所需的位置(唯一的更改将在您在导入中使用的路径中)语句)。 Ionic的默认项目结构根据类型组织事物,所以默认情况下你会有这样的事情:
src
...
pages
pipes
providers
...
找出放置位置的最简单方法之一就是使用ionic generate ... customName
命令,其中三个点可以是page
,provider
,pipe
和directive
。这将创建工件并将其放置在应有的位置。
您还可以查看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 {}