2016-10-18 29 views
5

Tôi đã sử dụng hai dịch vụ 1. dịch vụ kết nối và 2. dịch vụ bán hàngCách sử dụng dịch vụ trong một dịch vụ khác trong Ionic 2

Dịch vụ kết nối có chứa thông tin về cổng và ip. Tôi cần lấy ip và cổng từ dịch vụ đầu tiên đến dịch vụ bán hàng. để tôi có thể hoàn thành url được sử dụng để lấy json.

Removed phần mã hóa ở đây, xin hãy xem repo của tôi tại Update # 3

Lỗi Tôi nhận được thông tin

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

Cordova CLI: 6.3.1
Gulp phiên bản: phiên bản 3.9.1 CLI
Gulp địa phương:
Ionic Framework Version: 2.0.0-rc.1
Ionic CLI Version: 2.1.0
Ionic App Lib Version: 2.1.0-beta. 1
phiên bản ios-triển khai: Không được cài đặt
ios-sim phiên bản: Không được cài đặt
Hệ điều hành: Mac OS X El Capitan
Node Version: v6.7.0
phiên bản Xcode: Xcode phiên bản 7.3.1 Build 7D1014

từ dấu vết ngăn xếp tôi hiểu rằng tôi cần sử dụng một cái gì đó như nhà cung cấp: [ConnectionService] nhưng tôi không biết cách sử dụng nó trong dịch vụ bán hàng cung cấp. Bất kỳ tư vấn nào đều hữu ích. Cảm ơn bạn.

Update # 1

tôi đã cố gắng tiêm cả các dịch vụ trong app.module.ts tập tin như đưa ra dưới đây

  1. nhà cung cấp: [ConnectionService, SalesService] // này hoạt động cảm ơn @jmilloy@camaron.

Update # 2

Tôi tạo ra một dự án mới và tôi lặp lại lỗi mà nói

Không cung cấp cho FirstService!

nhưng trong dự án ban đầu của tôi, lỗi nên nói

Không cung cấp cho ConnectionService!

// thay vì nó nói

Không cung cấp dịch vụ cho t! // nó là gì?

Update # 3 Tôi đã tải lên dự án của tôi trong repo của tôi. kiểm tra xem nó ra.

This is my original project repo // Vấn đề được giải quyết, phải xóa bộ nhớ cache npm.

This is my new project repo // Issue giải quyết dựa trên câu trả lời cho

+1

Bạn có cuộc gọi ‘ionicBootstrap' nào ở bất kỳ đâu không? Tôi bắt đầu với Angular/Ionic, nhưng trong app.ts của chúng ta, chúng ta sẽ có 'ionicBootstrap (AppModule, [ConnectionService, SalesService])'. Hoặc có lẽ bạn có thể thêm 'ConnectionService' vào danh sách' bootstrap'? – jmilloy

+0

@jmilloy Cảm ơn bạn đã trả lời, vui lòng xem câu hỏi cập nhật của tôi Cập nhật # 1 –

Trả lời

2

Sự cố của bạn có vẻ là SalesService, bạn đang sử dụng provider: [SalesService] trên một thành phần? Nếu không, bạn nên thêm SalesService vào số providers: [ConnectionService, SalesService] trên app.module.ts

0

Hãy thử

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

Kiểm tra @Inject trên constructor, đừng quên việc nhập khẩu Inject.

+0

Cảm ơn @camaron, nhưng vẫn gặp lỗi tương tự. –

+1

@DarthIonic vấn đề của bạn có vẻ là 'SalesService' của bạn, bạn đang sử dụng một nhà cung cấp': [SalesService] 'trên một thành phần? Nếu không, bạn nên thêm 'SalesService' vào' nhà cung cấp: [ConnectionService, SalesService] 'trên ** app.module.ts ** –

+0

Cảm ơn bạn đã trả lời, vui lòng xem câu hỏi cập nhật của tôi Cập nhật # 1 –

Các vấn đề liên quan