Я пытаюсь запустить простой запрос HTTP в Угловое и бегу в следующее сообщение об ошибке:Угловое 2 HTTP запроса: TypeError: backend.createConnection не является функцией
angular2.dev.js:23941 Error: Uncaught (in promise): EXCEPTION: Error during instantiation of AlbumListComponent!. ORIGINAL EXCEPTION: TypeError: backend.createConnection is not a function
Для упрощения я сломал вниз функциональность HTTP в самом простом удалении службы и только непосредственно обращающегося службу HTTP и Observable:
import {Component} from 'angular2/core';
import {Album} from './album';
import {AppState} from './appstate';
import {Observable} from 'rxjs/Observable';
import {Http} from 'angular2/http';
@Component({
selector: 'album-list',
templateUrl: 'Views/albumList.html',
providers: [AlbumService, Http, Response]
})
export class AlbumListComponent {
albums: Array<Album> = [];
title: string = "Album Listing";
errorMessage: string;
constructor(public state: AppState,
public albumService: AlbumService,
public http: Http) {
console.log('AlbumList Constructor' + this.title);
state.activeTab = "albums";
debugger;
http.get(state.urls.albums)
.map(res => {
debugger;
return res.json()
})
//.catch(error => {
// debugger;
// console.error(error);
// return Observable.throw(error.json().error || 'Server error');
//})
.subscribe(albums => this.albums = albums)
//this.getAlbums(); // service removed to simplify
}
}
Bootstrap код (и http.dev.js включен в список сценариев):
import {bootstrap} from 'angular2/platform/browser';
import {Albumviewer} from './albumviewer.component';
import {ROUTER_PROVIDERS} from 'angular2/router';
import {HTTP_PROVIDERS} from 'angular2/http';
import {AppState} from './appstate'
import 'rxjs/Rx';
bootstrap(Albumviewer,[
ROUTER_PROVIDERS,
HTTP_PROVIDERS,
]);
Я либо получил описанную ошибку, либо ошибки в отношении отсутствующих поставщиков (например, ConnectionBackend).
Если я удалю код доступа Http, приложение будет работать нормально. С кодом там он бомбит. Я понятия не имею, что посмотреть здесь, поскольку сообщение об ошибке явно относится к дочернему компоненту, используемому службой HTTP.
я есть HTTP_PROVIDERS, зарегистрированный в коде начальной загрузки, так что это не совсем проблема. Но вы указали мне в правильном направлении. Проблема заключалась в том, что явное добавление поставщика Http - если я удалю ссылку на Http-провайдер, то код выше начнет работать. –
Я могу подтвердить, что удаление Http из провайдеров устраняет эту проблему, которая произошла только в тесте spec, который вызывает «реальный» поддельный backend :) (ng 2.0.0) – Guntram