2016-10-18 6 views
5

Ich habe zwei Service 1. Anschluss-Service und 2. Sales-ServiceWie einen Dienst in einem anderen Dienst zu verwenden, in Ionic 2

Der Anschluss-Service enthält die IP und Port-Informationen verwendet. Ich muss die IP und den Port vom ersten Service zum Verkaufsservice bekommen. damit ich die url, die für das Erhalten des json verwendet wird, abschließen kann.

entfernt den kodierenden Teil hier, nehmen Sie bitte einen Blick auf meine Repo bei Update # 3

Fehler Ich erhalte

2  007892 error EXCEPTION: No provider for t!                   
3  007893 error ORIGINAL STACKTRACE:                      
4  007893 error Error: No provider for t!                    
    at e.Error (native)                           
    at e [as constructor] (http://192.168.1.48:8100/build/main.js:5:4700)              
    at e [as constructor] (http://192.168.1.48:8100/build/main.js:5:9276)              
    at new e (http://192.168.1.48:8100/build/main.js:5:9604)                  
    at t._throwOrNull (http://192.168.1.48:8100/build/main.js:5:26583)               
    at t._getByKeyDefault (http://192.168.1.48:8100/build/main.js:5:26939)              
    at t._getByKey (http://192.168.1.48:8100/build/main.js:5:26494)                
    at t.get (http://192.168.1.48:8100/build/main.js:5:22859)                 
    at e.get (http://192.168.1.48:8100/build/main.js:7:14254)                 
    at e.get (http://192.168.1.48:8100/build/main.js:8:1442)                  
5  007895 error Uncaught Error: No provider for t!, http://192.168.1.48:8100/build/polyfills.js, Line: 3 

My Ionic info

Cordova CLI: 6.3.1
Gulp Version: CLI-Version 3.9.1
Gulp local:
Ionic Framework Version: 2.0.0-rc.1
Ionic CLI Version: 2.1.0
Ionic App Lib Version: 2.1.0-beta. 1
ios-deploy-Version: Nicht installiert
ios-sIM-Version: Nicht
OS installiert: Mac OS X El Capitan
Knoten Version: v6.7.0
Xcode Version: Xcode 7.3.1 Build-Version 7D1014

von der Stack-Trace verstehe ich, dass ich etwas wie Provider verwenden muss: [ConnectionService], aber ich weiß nicht, wie man es in Sales-Service verwenden kann. Jede Beratung wäre hilfreich. Vielen Dank.

Update # 1

Ich habe versucht, in app.module.ts Datei sowohl die Dienste Injektion wie unten angegeben

  1. Anbieter: [Connection, Salesservice] // das funktioniert danke @jmilloy und @camaron.

Update # 2

habe ich ein neues Projekt, und ich repliziert den Fehler, die

Kein Anbieter für First sagt!

aber in meinem ursprünglichen Projekt, sollte der Fehler

Kein Anbieter für Connection sagen!

// statt sagt es

Kein Anbieter für t! // Worauf bezieht es sich?

Update # 3 Ich habe mein Projekt in meinem Repo hochgeladen. Hör zu.

This is my original project repo // Problem gelöst, musste den npm Cache säubern.

This is my new project repo // Ausgabe auf die Antwort ausgewertete basierend

gegeben
+1

fügen Sie überall einen 'ionicBootstrap' Ruf haben? Ich beginne mit Angular/Ionic, aber in unserer App.ts hätten wir 'ionicBootstrap (AppModule, [ConnectionService, SalesService])'. Oder können Sie 'ConnectionService' zur 'Bootstrap'-Liste hinzufügen? – jmilloy

+0

@jmilloy Danke für die Antwort, bitte sehen Sie meine aktualisierte Frage Update # 1 –

Antwort

2

Ihr Problem scheint Ihre SalesService zu sein, verwenden Sie eine provider: [SalesService] auf einer Komponente? Wenn nicht, sollten Sie die SalesService zu Ihrem providers: [ConnectionService, SalesService] auf Ihrem app.module.ts

0

Versuchen

import { Injectable, Inject } from '@angular/core'; 
import { Http, Headers } from '@angular/http'; 
import { ConnectionService } from './connection-service'; 
import 'rxjs/add/operator/map'; 

@Injectable() 
export class SalesService { 
    connection:ConnectionService; 
    constructor(public http: Http, @Inject(ConnectionService) connection:ConnectionService) { 
    this.connection = connection; 
    this.http = http; 
    this.connection.getConnectionInfo(); 
    } 

    getSalesData(): any { 
    return this.http.get("http://"+this.connection.ip+":"+this.connection.port+"/DasherAPI/public/api2/getCompanySalesFull"); 
    } 
} 

die @Inject auf Konstruktor Überprüfen Sie, vergessen Sie nicht die Inject Import.

+0

Danke @camaron, aber immer noch den gleichen Fehler. –

+1

@DarthIonic Ihr Problem scheint Ihr 'SalesService' zu ​​sein, Sie verwenden einen' Provider: [SalesService] 'auf einer Komponente? Wenn nicht, sollten Sie den 'SalesService' zu ​​Ihren' Providern hinzufügen: [ConnectionService, SalesService] 'auf Ihrer ** app.module.ts ** –

+0

Danke für die Antwort, bitte sehen Sie meine aktualisierte Frage Update # 1 –

Verwandte Themen