2016-08-24 4 views
0

は、httpリクエストを含むモデルです。私の質問は、新しいクラスオブジェクトをインスタンス化することによってサービスをインスタンス化することができますか?angular 2 perfommへのカスタム変数を作成し、指定されたURLのCRUD

export class DbHttp { 

    private path:string; 

    constructor(private path:string, private customService:CustomService){} 

    create(data:Object):Observable<Response>{ 
     return this.customService.create(this.path, data) 
    } 

    getAll():Observable<Response>{ 
     return this.customService.getAll(this.path) 
    } 
} 

私が達成したいのは、カスタマイズされたURLでhttpリクエストを実行するためのショートカットです。理想的には構文は次のようになります。

public dbAccessTodo = this.service.access('todo') 
//access is a method which returns an object with builtin CRUD functions for a Base_Url+'todo' 

create(data){ 
    this.dbAccessTodo.create(data) 
} 

ありがとう!

答えて

0

私はあなたが達成したいとは思っていません。私は、そうでない場合は、より詳細にあなたの質問を説明してください、CustomRequestOptionsこのことができます

export class CustomRequestOptions extends RequestOptions { 
    merge(options?: RequestOptionsArgs): RequestOptions { 
     ... 
     options.url = '<%= API_BASE_URL %>' + options.url; 
     var result = super.merge(options); 
     result.merge = this.merge; 
     return result; 
} 

希望使用

@Injectable() 
export class OrderService { 
    private endPoint = 'Orders'; 

    constructor(private http: Http) { } 

    get(id: string) { 
     return this.http 
      .get(`'${this.endPoint}/${id}`, { body: '' }) 
      .map(res => res.json()); 
    } 

そして、私のAPIのベースURLを変更するには:

は、私はこのようなサービスを作成しました。

関連する問題