加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angular 2:没有ConnectionBackend的提供者

发布时间:2020-12-17 08:04:07 所属栏目:安全 来源:网络整理
导读:得到这个“ConnectionBackend没有提供者
得到这个“ConnectionBackend没有提供者!”尝试使用带有promise的http时出错。

main.ts

// ... tl;dr import a bunch of stuff

platformBrowserDynamic().bootstrapModule(MyModule);

myModule.ts

// ... tl;dr import a bunch of stuff

@NgModule({
 declarations: [
        PostComponent
  ],providers: [
    Actions,MyService,Http
  ],imports: [
    ...
  ],bootstrap: [MyComponent]
})

myComponent.ts

import { Component,OnInit } from '@angular/core';
import {ActivatedRoute,Router} from '@angular/router';
import {Observable} from 'rxjs/Observable';
import {MyService} from './../services/myService'
import {Post} from './post';

@Component({
  templateUrl: 'post.component.html',styleUrls: ['post.component.css']
})
export class MyComponent implements OnInit {
  post: Observable<Post>;
  postId : Number;

  constructor(private route: ActivatedRoute,private router: Router,private service:MyService) {

  }


  ngOnInit() {
    this.route.params.subscribe(params => {
      this.postId = +params['id'];
      this.post = this.service.getPostById(this.postId);
    });
  }

}

myService.ts

import {Injectable} from "@angular/core"
import {Http} from '@angular/http';
import {Observable} from 'rxjs/Observable';
import {Post} from './../post/post';
import 'rxjs/Rx'

@Injectable()
export class MyService {

    endpoint_url:String = "http://someurl.com/";

    constructor(private http: Http){
    }

    getPostById (id:Number) : Observable<Post> {
        return this.http.get(this.endpoint_url + id.toString()).map(res => res.json());
    }
}

一切看起来不错,但后来我收到这个错误:

error_handler.js:51Error: Uncaught (in promise): Error: Error in ./MyComponent class MyComponent_Host - inline template:0:0 caused by: No provider for ConnectionBackend!
at resolvePromise (zone.js:429)
at zone.js:406
...

here is the docs for ConnectionBackend.我想我只需要在myModule中向提供者添加内容?

在模块中导入HttpModule,而不是将Http注册为提供者。
import {HttpModule} from '@angular/http';

@NgModule({
 imports: [HttpModule],declarations: [
        PostComponent
  ],MyService

  ],bootstrap: [MyComponent]
})

HttpModule为其所有服务注册提供程序。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读