我是从离子V2,Angular2和Typescript开始的。因此,我正在尝试设置一个离子登录页面,该页面检索登录凭据并联系远程API以进行身份验证。我显然需要Angular HTTP客户端。
src/app/app.component.ts 看起来像:
import { Component } from '@angular/core';
import { Platform } from 'ionic-angular';
import { StatusBar, Splashscreen } from 'ionic-native';
import { LoginPage } from '../pages/login/login';
@Component({
templateUrl: 'app.html'
})
export class MyApp {
rootPage = LoginPage;
constructor(platform: Platform) {
platform.ready().then(() => {
StatusBar.styleDefault();
Splashscreen.hide();
});
}
}
src/app/app.module.ts 看起来像:
import { NgModule, ErrorHandler } from '@angular/core';
import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
import { MyApp } from './app.component';
import { LoginPage } from '../pages/login/login';
import { AuthService } from '../providers/auth-service';
import { HttpModule, JsonpModule } from '@angular/http';
@NgModule({
declarations: [
MyApp,
LoginPage,
HttpModule,
JsonpModule,
],
imports: [
IonicModule.forRoot(MyApp)
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
LoginPage
],
providers: [{provide: ErrorHandler, useClass: IonicErrorHandler},AuthService]
})
export class AppModule {}
当然,定义了任何其他必要的文件(页面/登录/登录。*和提供商/auth-service.ts),因此没有丢失的文件或服务错误。
问题:
当我通过ionic serve
构建应用程序时,该过程没有错误完成,但是在浏览器中启动应用程序时,我会收到此错误:
意外的模块" httpmodule"由模块" appmodule"声明
尽管如此,我只是遵循正式文档本教程的指示。
我从几个小时以来就一直在谷歌搜索,没有找到解决方法。
有人可以告诉我我做错了什么?
您应该导入 HttpModule
如下,
imports: [
HttpModule,
JsonpModule
...
...
}
注意:与 JsonpModule
相同。而且不要忘记从 declarations
数组中删除它们。
就离子2而言,您无需单独导入 httpmodule 。 IonicModule 在链接中为您做到这一点:
exports: [
BrowserModule,
HttpModule,
FormsModule,
ReactiveFormsModule,
您可以直接使用组件。类似表单。
declarations
属性用于声明此模块中您拥有的每个组件和管道,允许您在模块中使用它们。
要在当前一个模块中使用另一个模块,您必须使用imports
属性,例如:
@NgModule({
declarations: [
MyApp,
LoginPage
],
imports: [
IonicModule.forRoot(MyApp),
HttpModule,
JsonpModule
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
LoginPage
],
providers: [{provide: ErrorHandler, useClass: IonicErrorHandler},AuthService]
})