设计结构如下
其中 component.module 是公共组件的模块。虚线的base.module 是暂时没有实现的模块,里面应该包含所有项目都能通用的一些服务、组件等。
代码结构如下
根模块内容
import { NgModule, ErrorHandler } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
import {HttpModule} from '@angular/http';
import { MyApp } from './app.component';
import { TabsPage } from '../pages/tabs/tabs';
import { MineModule } from '../pages/mine/mine.module';
import { HomeModule } from '../pages/home/home.module';
import { ClassifyModule } from '../pages/classify/classify.module';
import { ShoppingModule } from '../pages/shopping/shopping.module';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
import { Network } from '@ionic-native/network';
import { IonicStorageModule } from '@ionic/storage';
import { HttpService } from '../providers/HttpService';
import { NativeServiceC } from '../providers/NativeServiceC';
import { GlobalData } from '../providers/GlobalData';
@NgModule({
declarations: [
MyApp,
TabsPage
],
imports: [
BrowserModule,
HttpModule,
IonicModule.forRoot(MyApp,{
mode:'ios', // android是"md" 统一为iOS平台样式
backButtonText:'',
tabsHideOnSubPages:true
}),
IonicStorageModule.forRoot(),
// 自定义模块
MineModule,
HomeModule,
ClassifyModule,
ShoppingModule
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
TabsPage
],
providers: [
StatusBar,
SplashScreen,
Network,
HttpService,
NativeServiceC,
GlobalData,
{provide: ErrorHandler, useClass: IonicErrorHandler}
]
})
export class AppModule {}
declarations - 声明本模块中拥有的视图类。Angular 有三种视图类:组件、指令、管道。
exports 导出对外公开的组件、模块
imports 本模块声明的组件模板需要的类所在的其它模块。
providers 本模块中包含的服务。
bootstrap 指定应用的主视图(称为根组件),它是所有其它视图的宿主。只有根模块才能设置bootstrap属性。
子模块内容
import {NgModule} from '@angular/core';
import {IonicPageModule} from 'ionic-angular';
import {HomePage} from './home';
// module
import {ComponentModule} from '../../component/component.module'
import { LoginService} from '../login/loginService'
@NgModule({
imports: [
IonicPageModule.forChild(HomePage),
ComponentModule
],
declarations: [HomePage],
entryComponents: [],
providers: [],
exports: []
})
export class HomeModule {
}
和根模块的内容基本相同 较简单 其他模块一样
这样进行 模块化以后 每一个模块都只关心和自己相关的组件 服务等 层级管理 较为方便
其他
项目代码在码云上管理 更新中。。。