我是否错误地注入了Angular2服务?(Ionic2项目)
我有以下服务:我是否错误地注入了Angular2服务?(Ionic2项目),angular,ionic2,angular2-services,Angular,Ionic2,Angular2 Services,我有以下服务: import { Injectable } from '@angular/core'; import {Http} from '@angular/http'; import 'rxjs/add/operator/map'; @Injectable() export class MovieService { static get parameters() { return [[Http]]; } constructor(private http:Http)
import { Injectable } from '@angular/core';
import {Http} from '@angular/http';
import 'rxjs/add/operator/map';
@Injectable()
export class MovieService {
static get parameters() {
return [[Http]];
}
constructor(private http:Http) {
}
searchMovies(movieName) {
var url = 'http://api.themoviedb.org/3/search/movie?query=&query=' + encodeURI(movieName) + '&api_key=5fbddf6b517048e25bc3ac1bbeafb919';
var response = this.http.get(url).map(res => res.json());
return response;
}
}
(从一个例子中我不确定get parameters函数的用途,但它的存在似乎没有引起任何问题)
我正在尝试将服务注入组件:
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import {MovieService} from '../../services/psa-web-api.service';
@Component({
templateUrl: 'build/pages/browsed/browsed.html',
providers:[MovieService]
})
export class BrowsedPage {
constructor(private movieService: MovieService, public navCtrl: NavController) {
}
}
但每次我为应用程序提供服务并通过浏览器访问它时,它都会抛出以下控制台错误:
EXCEPTION: Error: Uncaught (in promise):
EXCEPTION: Error in ./MyApp class MyApp_Host - inline template:0:0
ORIGINAL EXCEPTION: No provider for ConnectionBackend! ORIGINAL STACKTRACE: Error: DI Exception
我在网上找不到关于这个错误的任何信息,除了这篇没有太大帮助的帖子:
编辑:为进一步的上下文添加此文件,my app.ts文件:
import { Component} from '@angular/core';
import { Platform, ionicBootstrap } from 'ionic-angular';
import {HTTP_PROVIDERS } from '@angular/http';
@Component({
template: '<ion-nav [root]="rootPage"></ion-nav>',
providers: []
})
export class MyApp {...}
ionicBootstrap(MyApp, [HTTP_PROVIDERS]);
从'@angular/core'导入{Component};
从“离子角度”导入{Platform,ionicBootstrap};
从'@angular/HTTP'导入{HTTP_PROVIDERS};
@组成部分({
模板:“”,
提供者:[]
})
导出类MyApp{…}
ionicBootstrap(MyApp,[HTTP_提供者]);
我不知道爱奥尼亚,所以我可能错了,但在Angular2中,处理Http需要HttpModule。(RC5及更高版本)
从'@angular/http'导入{HttpModule};
@NGD模块({
进口:[
浏览器模块,
HttpModule,//我不知道,所以我可能错了,但在Angular2中,为了处理Http(RC5及更高版本),需要使用HttpModule)
从'@angular/http'导入{HttpModule};
@NGD模块({
进口:[
浏览器模块,
HttpModule,//尝试不使用get parameters
方法,因为不再需要该方法(我认为它在以前版本的Ionic2中使用过,所以您得到的示例可能没有更新)
也可以尝试不导入HTTP\u提供程序
从'@angular/HTTP'导入{HTTP_PROVIDERS};
因此,您的ionicBootstrap
如下所示:
ionicBootstrap(MyApp);
尝试不使用get parameters
方法,因为不再需要它(我认为它在以前版本的Ionic2中使用过,所以您得到的示例可能没有更新)
也可以尝试不导入HTTP\u提供程序
从'@angular/HTTP'导入{HTTP_PROVIDERS};
因此,您的ionicBootstrap
如下所示:
ionicBootstrap(MyApp);
我的app.ts
看起来像这样
import {HTTP_PROVIDERS} from '@angular/http';
@Component({
templateUrl: "build/app.html",
providers: [HTTP_PROVIDERS]
})
然后
ionicBootstrap(MyApp) //without the HTTP_PROVIDERS
我的app.ts
看起来像这样
import {HTTP_PROVIDERS} from '@angular/http';
@Component({
templateUrl: "build/app.html",
providers: [HTTP_PROVIDERS]
})
然后
ionicBootstrap(MyApp) //without the HTTP_PROVIDERS
因此,我实际上没有使用NgModule,因为我使用的Ionic版本仍在angular2 RC4(模块IIRC之前)上运行检查更新的答案。但它仍然属于Angular2。请注意,我不知道Ionic。因此,答案可能对您有帮助,也可能没有帮助。我实际上认为这可能是问题所在,并在提出问题后立即尝试在那里注入提供商……唉,这并没有解决我的问题。因此,我实际上没有使用NgModule,因为我使用的是Ionic版本angular2 RC4(模块IIRC前)上仍在运行using检查更新的答案。但它仍然属于Angular2。请注意,我不知道Ionic。因此,答案可能对您有帮助,也可能对您没有帮助。我实际上认为这可能是问题所在,并在提出问题后立即尝试在那里注入提供商……唉,这并没有解决我的问题。嗯……您可以使用此选项并在那里添加代码吗?也许我们可以可以重现错误并查看发生了什么:)查看上面Ivaro18的答案以获得解决方案。嗯……您可以使用此选项并将代码添加到那里吗?也许我们可以重现错误并查看发生了什么:)查看上面Ivaro18的答案以获得解决方案。这已修复它!似乎ionicBootstra()
没有像我想的那样注入HTTP\u提供程序。这解决了它!似乎ionicBootstra()
没有像我想的那样注入HTTP\u提供程序。