Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我是否错误地注入了Angular2服务?(Ionic2项目)_Angular_Ionic2_Angular2 Services - Fatal编程技术网

我是否错误地注入了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中,为了处理HttpRC5及更高版本),需要使用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提供程序。