2016-05-13 2 views
0

Я очень новый в Angular2. Я хотел бы иметь один класс, имеющий все мои конечные точки API (позволяющие параметры и т. Д. На разных маршрутах), которые я мог бы использовать во всех моих сервисах. Каков наилучший способ сделать это в Angular2. Я имею в виду, я должен определю @Injectable class, как вы могли бы сделать при определении сервиса (а затем добавить его в PROVIDERS мои службах), или это нечто похожее на constant в угловом 1.x, что я мог бы использоватьОпределить конечную точку API в Angular2 (машинописный текст)

ответ

1

Я бы создал @Injectable Class, поэтому вы можете составить API, если вам это нужно.
У меня есть сервис API, который впрыскивается в начальной загрузки (приложение одноточечного), и это используется во всех других услуг, это то, как он выглядит:

import { Injectable } from '@angular/core'; 

@Injectable() 
export class ApiService { 
    // Hardcoded user : 
    private user: string = '/user/1'; 

    get userCars() { 
     return `${this.user}${API.userCars}` 
    } 

    get userRegisterCar() { 
     return `${this.user}${API.userRegisterCar}` 
    } 

    get profile() { 
     return this.user; 
    } 
} 

const API = { 
    userCars: '/usercar/details=true', 
    userRegisterCar: '/usercar/registration/' 
} 
+0

Как это работает, если я не хочу пользователь 1, но пользователь x? – Scipion

+0

Это прекрасно, спасибо! – Scipion

+0

У вас будет другой сеттер/метод, который будет обновлять пользователя. Что-то вроде set user (userID) {this.user = '/ user/$ {userID}'} – tibbus

0

вы можете попробовать непосредственно добавляя постоянный файл, который экспортирует все свои постоянный, если это решит вашу цель,

constants.ts

export var APPCONSTANTS: any = { 
     GETDATA_API_PATH : "some path here" 
    } 

Если вы хотите IntelliSense вы должны определить интерфейс, который перечислит все возможные свойства, такие как ниже и тип APPCONSTANTS как IAppConstant,

interface IAppConstant{ 
     GETDATA_API_PATH: string 
    } 

импорта постоянен и использование,

import { APPCONSTANTS } from "./constants"; // give relative path 
    ... 
    ... 
    let x = APPCONSTANTS["GETDATA_API_PATH"]; 
    or 
    let x = APPCONSTANTS.GETDATA_API_PATH"; 

Надеется, что это помогает !!

Смежные вопросы