typescript - Angular2 + typescript + jspm : No provider for Http ( App -> Provider -> Http )

标签 typescript angular jspm

我尝试使用 system.js 从 Webpack 迁移到 JSPM。我们有简单的 App 组件。我正在阅读这篇文章 Angular 2 Starter Setup with JSPM, SystemJS and Typescript in atom (Part 1)

import {Component} from 'angular2/core';
import {Bus} from './business.service';

@Component({
  selector: 'app',
  template: `
  <p>Hello World</p>
  `,
  providers:[Bus]
})
export class App {
  constructor(private bus : Bus) { }
}

Http 的简单(业务)服务

import {Injectable} from 'angular2/core';
import {Http, Response, Headers, RequestOptions} from 'angular2/http';
import {Observable}     from 'rxjs/Observable';

@Injectable()
 export class Bus {

  constructor(private http: Http){

  }
}

在 Webpack 中工作正常,但在 systemjs 中出现此错误

EXCEPTION: No provider for Http! (App -> Bus -> Http)

我读了Angular2 no provider for NameService但他们谈论的是 Angular2 alpha 并且在提供者中没有提供者,我们使用 beta@7

我也玩

import {Component} from 'angular2/core';
//import {Bus} from './business.service';
import {Http, Response, Headers, RequestOptions} from 'angular2/http';
@Component({
  selector: 'app',
  template: `
  <p>Hello World</p>
  `,
  providers:[Http]
})
export class App {
  constructor(private bus : Http) { }
}

但是错误更奇怪

EXCEPTION: No provider for ConnectionBackend! (App -> Http -> ConnectionBackend)

我什至尝试更改为 angular2-beta@6。还有 angular2-beta@1 你知道我做错了什么吗?谢谢

使用加载器版本:systemjs@0.19.23

最佳答案

>= RC.5

HttpModule 添加到 AppModule 的导入中:

@NgModule({
  imports: [HttpModule],
  ...
})
export class AppModule {}

<= RC.5

您需要将 HTTP_PROVIDERS 添加到 bootstrap 的提供者列表中

import {HTTP_PROVIDERS} from 'angular2/http';
<!-- -->
bootstrap(AppComponent, [HTTP_PROVIDERS]);

另见 https://angular.io/docs/ts/latest/api/http/HTTP_PROVIDERS-let.html

关于typescript - Angular2 + typescript + jspm : No provider for Http ( App -> Provider -> Http ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35719236/

相关文章:

angular - 即使 tsc 版本足够高,带有 bang 运算符的 Typescript 文件也不会构建

typescript - TypeScript 中的类型推断丢失了内部级别类型

javascript - Angular/ typescript : Accessing object data in constructor

javascript - 将 system.js 文件从 jspm_packages 移至另一个文件夹,不会解析配置中的包

javascript - CSS 与 SystemJS/jspm

typescript - 我不明白为什么我在使用 ts-jest 和 sequelize 时遇到这个错误

javascript - 使用 Ionic 4 Angular Fire Auth 防护进行无限 console.logging

java - Angular 5 + Spring Boot post 方法不起作用

angular - 带有用户单击选定组件的动态选项卡

javascript - 如何使用 jspm 和 systemjs 加载 Emberjs 2.0