2016-09-22 6 views
2

내 api 서비스를 구축 중입니다. 나는 그것을 보편적으로 원한다. 공급자의 정의에서 apiUrl을 정의하는 방법은 무엇입니까? 여기 param to service

내 서비스 :

import {Injectable} from "@angular/core"; 
import {Http, Response} from "@angular/http"; 
import '/js/admin/rxjs-operators'; 
import {Observable} from "rxjs"; 
@Injectable() 
export class ApiService { 
    private apiUrl: string = 'http://www.system.local/api/'; 

    constructor(private http: Http, private apiUrl: string) { 
    } 

    get(url: string, params): Observable<Response> { 
     let requestUrl: string = this.apiUrl + url + this.parseParams(params); 
     return this.http.get(requestUrl) 
      .map(response => response.json()); 
    } 

    post(url: string, params): Observable<any> { 
     let requestUrl: string = this.apiUrl + url; 
     return this.http.post(requestUrl, params) 
      .map(response => response.json()); 
    } 
} 

나 서비스 제공 업체에 시도했지만 deps 클래스 될 것 같다 :

import {ApiService} from "./api.service"; 
import {Http} from "@angular/http"; 
let apiServiceFactory = (http: Http, apiUrl: string)=> { 
    return new ApiService(http, apiUrl); 
}; 

export let apiServiceProvider = { 
    provide: ApiService, 
    useFactory: apiServiceFactory, 
    deps: [Http, 'http://www.wp.pl'] 
}; 

및 모듈

: @NgModule ({ 제공 : [ apiServiceProvider ] }

+0

[Angular 2 "No Provider for String!"] 가능한 복제본 (0120-337-005) –

답변

1
+0

모든 구성 값은 다음과 같이 구분되어야합니다. 그 서비스에 주입 되는가? – piernik

+0

예,이 시험 보고서를보실 수 있습니다 : https://angular.io/docs/ts/latest/api/core/index/OpaqueToken-class.html – martin

+0

감사합니다 - 더 많은 것을 읽어야합니다 :) – piernik