我目前正在使用Ionic2开发移动应用,我遇到了一个问题。基本上,我想要实现的是以我可以创建全局模块(或通用模块[可以被任何应用程序使用])的方式划分我的应用程序,这对于特定于应用程序的模块是完全独立的。
我构建了这样的代码:
src
-> app
-> assets
-> configs
-> globals [ this is where i put the global modules ]
--> modules
---> user
----> user-controller.ts
----> module.ts
--> services
... etc.
--> module.ts (this bootstraps everything, included later on)
-> pages
.. etc.
所以基本上,在这个结构中,我可以创建全局有用的模块,只需将它拉到任何地方。
但是我遇到了这个错误:
inline template:164:9 caused by: No provider for UserController!
我担心,如果正确导入模块,我应该看到没有错误。 现在,我的问题是:
感谢您的回复。
相关代码:
globals/providers/auth.ts
import { Injectable} from "@angular/core";
import { UserController } from '../modules/user/user-controller';
@Injectable()
export class Auth {
constructor(private userCtrl:UserController) {
}
}
app/app.module.ts
import { NgModule } from '@angular/core';
/**
* Globals
*/
import { GlobalModule } from '../globals/module';
@NgModule({
declarations: [
],
imports: [
],
bootstrap: [IonicApp],
entryComponents: [
],
providers: [
GlobalModule,
]
})
export class AppModule {
}
globals/module.ts
import {NgModule} from '@angular/core';
import { UserModule } from './modules/user/module';
@NgModule({
/* import sub modules */
imports: [
UserModule
],
/* import components */
declarations: [],
exports: [],
/* import services */
providers: [
Auth
]
})
export class GlobalModule {
}
globals/modules/user/module.ts
import {NgModule} from '@angular/core';
/* Import sub modules */
import { UserController } from './user-controller';
/* Import services */
@NgModule({
/* import sub modules */
imports: [
],
/* import components */
declarations: [
],
exports: [
],
/* import services */
providers: [
UserController
]
})
export class UserModule {
}
globals/modules/user/user-controller.ts
import {Injectable} from "@angular/core";
@Injectable()
export class UserController {
public users = [];
constructor() {
}
createUser( user ){
}
removeUser( user ){
}
}
答案 0 :(得分:0)
@NgModule({
declarations: [
],
imports: [
GlobalModule //<--- you need to import it here
],
bootstrap: [IonicApp],
entryComponents: [
],
providers: [
// GlobalModule, //<<<--- not needed here
]
})
export class AppModule {
}