2016-10-18 12 views
5

Użyłem dwóch usługę 1. Połączenie usług i 2. Sprzedaż i serwisJak skorzystać z usługi w innej usługi w jońskich 2

Połączenie usług zawiera IP i informacje o portach. Potrzebuję uzyskać adres IP i port z pierwszej usługi do działu sprzedaży. dzięki czemu mogę wypełnić adres URL używany do uzyskania jsona.

Usunięto część kodującą tutaj, proszę spojrzeć na moje repo w Aktualizacja # 3

Błąd Dostaję

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 jonowych INFO

Cordova CLI: 6.3.1
wersja Gulp: CLI wersja 3.9.1
Gulp lokalny:
Ionic Framework wersja: 2.0.0-rc.1
Ionic CLI wersja: 2.1.0
Ionic App Lib Version: 2.1.0-beta. 1
wersja iOS-Deploy: Nie zainstalowano
ios-sim wersja: Nie zainstalowano
OS: Mac OS X El Capitan
wersja Node: v6.7.0
wersja Xcode: Xcode wersja 7.3.1 Budowa 7D1014

ze śledzenia stosu Rozumiem, że potrzebuję użyć czegoś takiego jak dostawcy: [ConnectionService], ale nie wiem jak używać go w Sales-Service. Wszelkie porady byłyby pomocne. Dziękuję Ci.

Aktualizacja # 1

Próbowałem wstrzykiwanie zarówno usługi w app.module.ts pliku, jak podano poniżej

  1. dostawców: [ConnectionService, SalesService] // działa ten dzięki @jmilloy i @camaron.

Aktualizacja # 2

stworzyłem nowy projekt i replikowane błąd, który mówi

Żaden dostawca dla FirstService!

ale w moim pierwotnym projekcie, błąd powinien powiedzieć

Żaden dostawca dla ConnectionService!

// zamiast mówi

Żaden dostawca dla t! // co to znaczy jako t?

Aktualizacja # 3 Wysłałem mój projekt w moim repo. Sprawdź to.

This is my original project repo // Problem rozwiązany, musiał wyczyścić pamięć podręczną npm.

This is my new project repo // problem został rozwiązany na podstawie odpowiedzi udzielonej

+1

Czy masz 'ionicBootstrap' połączenia gdziekolwiek? Zaczynam od Angular/Ionic, ale w naszych aplikacjach będziemy mieli 'ionicBootstrap (AppModule, [ConnectionService, SalesService])'. A może możesz dodać 'ConnectionService' do listy' bootstrap'? – jmilloy

+0

@jmilloy Dzięki za odpowiedź, zobacz moje zaktualizowane pytanie Aktualizacja # 1 –

Odpowiedz

2

Twój problem wydaje się być twoim SalesService, używasz provider: [SalesService] na komponencie? Jeśli nie należy dodać SalesService aby Twój providers: [ConnectionService, SalesService] na swoim app.module.ts

0

Spróbuj

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"); 
    } 
} 

Sprawdź @Inject na konstruktora, nie zapomnij import Inject.

+0

Dzięki @camaron, ale nadal ma ten sam błąd. –

+1

@DarthIonic Twój problem wydaje się być 'SalesService', używasz' dostawca: [SalesService] 'na składnik? Jeśli nie, powinieneś dodać 'SalesService' do twoich' providerów: [ConnectionService, SalesService] 'na twojej ** app.module.ts ** –

+0

Dzięki za odpowiedź, zobacz moje zaktualizowane pytanie Update # 1 –

Powiązane problemy