首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有Http的提供程序!Angular2-当我更新到Angular 4并更新库时的标记

没有Http的提供程序!Angular2-当我更新到Angular 4并更新库时的标记
EN

Stack Overflow用户
提问于 2017-11-05 11:41:09
回答 1查看 182关注 0票数 0

我正在将我的应用升级到angular 4的过程中,我认为这与Angular2-token有关。(因为当我移除它时,没有中断)

当我从angular2升级到版本4时,我也更新了我的app.module.ts文件中的库列表(请参见下面),但更新的要点是我从@angular/http导入到@angular/common/http。在升级之前,它并没有崩溃。

我得到以下错误:

代码语言:javascript
复制
core.es5.js:1020 ERROR Error: Uncaught (in promise): Error: No provider for Http!
Error: No provider for Http!

这是与库相关的问题吗?我需要单独包含更多的库才能工作吗?这里我漏掉了什么?

我的app.module.ts文件

代码语言:javascript
复制
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; 
import { NgModule } from '@angular/core';
import { HttpClientModule, HttpClient } from '@angular/common/http';
import { TranslateService, TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';

import { AppComponent } from './app.component';

import { CoreModule } from './core/core.module';
import { LayoutModule } from './layout/layout.module';
import { SharedModule } from './shared/shared.module';
import { RoutesModule } from './routes/routes.module';
import { Angular2TokenService } from 'angular2-token';
export function createTranslateLoader(http: HttpClient) {
    return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}

@NgModule({
    declarations: [
        AppComponent
    ],
    imports: [
        HttpClientModule,
        BrowserAnimationsModule, 
        CoreModule,
        LayoutModule,
        SharedModule.forRoot(),
        RoutesModule,
        TranslateModule.forRoot({
            loader: {
                provide: TranslateLoader,
                useFactory: (createTranslateLoader),
                deps: [HttpClient]
            }
        })
    ],
    providers: [
        Angular2TokenService
    ],
    bootstrap: [AppComponent]
})
export class AppModule { }
My file.component.ts

import { Angular2TokenService } from 'angular2-token';
@Component({
    selector: 'app-file',
    templateUrl: './file.component.html',
    styleUrls: ['./file.component.scss']
})
export class HeaderComponent implements OnInit {
   constructor(
        private _tokenService: Angular2TokenService,
    ){}
}

我的package.json

代码语言:javascript
复制
{
  "name": "ng2angle",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "ng": "ng",
    "install": "napa",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "modernizr": "modernizr -c modernizr-config.json -d src/modernizr.js",
    "postinstall": "node ./node_modules/protractor/bin/webdriver-manager update",
    "e2e": "ng e2e"
  },
  "private": true,
  "napa": {
    "jquery.flot.spline": "miloszfalinski/jquery.flot.spline",
    "ika.jvectormap": "kakirigi/ika.jvectormap",
    "flot": "flot/flot#v0.8.3"
  },
  "dependencies": {
    "@agm/core": "1.0.0-beta.0",
    "@angular/animations": "4.3.3",
    "@angular/common": "4.3.3",
    "@angular/compiler": "4.3.3",
    "@angular/core": "4.3.3",
    "@angular/forms": "4.3.3",
    "@angular/http": "4.3.3",
    "@angular/platform-browser": "4.3.3",
    "@angular/platform-browser-dynamic": "4.3.3",
    "@angular/router": "4.3.3",
    "@ngx-translate/core": "7.1.0",
    "@ngx-translate/http-loader": "1.0.1",
    "ag-grid": "12.0.2",
    "ag-grid-angular": "12.0.0",
    "angular2-token": "0.2.0-beta.12",
    "angular-tree-component": "3.9.0",
    "angular2-datatable": "0.6.0",
    "angular2-text-mask": "8.0.3",
    "angular2-toaster": "4.0.1",
    "bootstrap": "3.3.7",
    "chart.js": "2.6.0",
    "classlist.js": "1.1.20150312",
    "codemirror": "5.28.0",
    "core-js": "2.4.1",
    "easy-pie-chart": "2.1.7",
    "enhanced-resolve": "3.3.0",
    "font-awesome": "4.7.0",
    "fullcalendar": "3.4.0",
    "intl": "1.2.5",
    "jqcloud2": "2.0.3",
    "jquery": "3.2.1",
    "jquery-slimscroll": "1.3.8",
    "jquery-sparkline": "2.4.0",
    "jquery.browser": "0.1.0",
    "jquery.flot.tooltip": "github:krzysu/flot.tooltip",
    "lodash": "4.17.4",
    "modernizr": "3.5.0",
    "moment": "2.18.1",
    "ng2-charts": "1.6.0",
    "ng2-dnd": "4.2.0",
    "ng2-file-upload": "1.2.1",
    "ng2-img-cropper": "0.9.0",
    "ng2-select": "1.2.0",
    "ng2-table": "1.3.2",
    "ng2-validation": "4.2.0",
    "ngx-bootstrap": "1.8.1",
    "ngx-chips": "1.5.3",
    "ngx-color-picker": "4.2.0",
    "ngx-infinite-scroll": "0.5.1",
    "ngx-pagination": "^3.0.1",
    "node-sass": "3.13.0",
    "rxjs": "5.4.2",
    "screenfull": "3.3.1",
    "simple-line-icons": "2.4.1",
    "spinkit": "1.2.5",
    "summernote": "0.8.6",
    "sweetalert": "1.1.3",
    "ts-helpers": "1.1.1",
    "weather-icons": "github:erikflowers/weather-icons",
    "web-animations-js": "2.2.1",
    "zone.js": "0.8.14"
  },
  "devDependencies": {
    "@angular/cli": "1.3.2",
    "@angular/compiler-cli": "4.3.3",
    "@angular/language-service": "4.3.3",
    "@types/codemirror": "0.0.43",
    "@types/jasmine": "2.5.53",
    "@types/jasminewd2": "2.0.2",
    "@types/lodash": "4.14.71",
    "@types/node": "6.0.60",
    "codelyzer": "3.1.1",
    "jasmine-core": "2.6.2",
    "jasmine-spec-reporter": "4.1.0",
    "karma": "1.7.0",
    "karma-chrome-launcher": "2.1.1",
    "karma-cli": "1.0.1",
    "karma-coverage-istanbul-reporter": "1.2.1",
    "karma-jasmine": "1.1.0",
    "karma-jasmine-html-reporter": "0.2.2",
    "karma-read-json": "1.1.0",
    "loaders.css": "0.1.2",
    "napa": "3.0.0",
    "protractor": "5.1.2",
    "ts-node": "3.2.0",
    "tslint": "5.3.2",
    "typescript": "2.3.3",
    "webdriver-manager": "10.2.5"
  }
}
EN

回答 1

Stack Overflow用户

发布于 2017-11-05 16:49:51

是的,很明显这是一个库依赖问题-除了来自@angular/common/http的HttpClientModule之外,我还必须包含来自@angular/http的HttpModule (因为我在ng4中使用它来更新功能)。Anglular2-token依赖于库的外观。

所以解决方案是

代码语言:javascript
复制
import { HttpClient } from '@angular/http';

然后添加了HttpModule

代码语言:javascript
复制
@NgModule({
    declarations: [
        AppComponent
    ],
    imports: [ 
       ...
       HttpModule
    ]
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47117941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档