2016-11-18 1 views
0

Я работаю над проектом, в котором мне нужно использовать Http на сервисном уровне. Ниже я пытаюсь привнести Http в конструктор, как я обычно, однако при попытке сделать ionic build ios я получаю следующие ошибки:Зависимость впрыска, вызывающая сборку для разрыва

[08:54:51] Error: Error at /Users/zzz/Sites/angular-app/Test-Wondersign/.tmp/pages/home/home.ngfactory.ts:64:29 
[08:54:51] Supplied parameters do not match any signature of call target. 
[08:54:51] ngc failed 
[08:54:51] ionic-app-script task: "build" 
[08:54:51] Error: Error 

home.ts

import { Component } from '@angular/core'; 
import { NavController } from 'ionic-angular'; 
import { HomeService } from '../home/home.service'; 

@Component({ 
    selector: 'page-home', 
    templateUrl: 'home.html', 
    providers: [HomeService] 
}) 
export class HomePage { 

    users: any; 

    constructor(public navCtrl: NavController, public hs: HomeService) { 
    this.loadUsers(); 

    } 

    loadUsers() { 
    this.hs.getUsers().then((response) => { 
     this.users = JSON.parse(response._body); 
    }); 
    } 
} 

home.service. ц

import { Http,Headers, RequestOptions } from '@angular/http'; 
import {Inject} from '@angular/core'; 

export class HomeService { 
    url:string; 
    constructor(@Inject(Http) public http: Http) { 
     this.url ='https://jsonplaceholder.typicode.com/users'; 
    } 

    getUsers(): Promise<any> { 
     return new Promise((resolve, reject) => { 

      this.http.get(this.url).subscribe(result => { 
       resolve(result); 
      }); 
     }); 
    } 
} 

home.html

<ion-header> 
    <ion-navbar> 
    <ion-title>Home</ion-title> 
    </ion-navbar> 
</ion-header> 

<ion-content padding> 
    <div *ngFor="let user of users"> 
    {{ user.name}} {{ user.email}} 
    </div> 
</ion-content> 
+1

не должен HomeService аннотироваться с @Injectable тоже? – toskv

+0

@toskv, спасибо за предложение, вы были правы! это была именно проблема. – AnchovyLegend

+1

Я также ответил на вопрос, пожалуйста, отметьте его как правильный, если это исправлено для вас. :) – toskv

ответ

1

Ваш HomeService должен быть аннотирован с помощью @Injectable.

Смежные вопросы