2017-03-15 1 views
0

가져 오기 URL의 일부를 상수 변수로 일부 외부 파일에 저장할 수 있는지 궁금합니다. 내가 뭘 염두에두고 :AngularJS 2 변수 가져 오기

프로젝트 구조 : 난 내 parkingLot 구성 요소에 Car.ts 구성 요소를 사용하려는 경우 재산 baseUrl 그래서 .

로 설정되어 tsconfig.json에서

Project 
| 
+--moduleA 
| | 
| +--src 
|  | 
|  +--objects 
|  | 
|  +--common 
|   | 
|   +--car.ts 
| 
+--moduleB 
    | 
    +--src 
     | 
     +--objects 
     | 
     +--common 
      | 
      +--parkingLot.ts 

나는 이것을해야한다 : import { car } from 'moduleA/src/objects/common/car.ts'.

은 무엇 내가 사용하려는 것은이 : 내가 moduleA에서 프로젝트 구조를 변경하는 경우

을 (object_path이 moduleA/src/objects/common/을 포함하는 동안) import { car } from object_path + 'car' 가져 오기가 더 이상 작동하지 않을 것입니다 그리고 난 moduleA을 의미 각 가져 오기를 변경해야 할 것입니다. 일부 파일에 상수로 저장하고이 파일 만 가져 오는 방법이 있습니까?

+0

왜 프로젝트 구조를 계속 변경합니까? 각도는 스타일 가이드를 가지고 있습니다 .. 프로젝트를 어떻게 설정해야하는지 잘 설명해주십시오. –

+0

@AbdelRaoof 프로젝트가 커지면 혼란스럽고 더 많은 구조가 필요할 수 있습니다. – SpaceNinjaApe

답변

0

변수를 import 문에서 문자열과 연결할 수 없습니다. 전역 설정을 정의하고 나중에 클래스에서 사용하려는 경우가 아니면 Angular는 String 리터럴 오류를 발생시킵니다.

이 라인은 전역 설정을 정의합니다 아래 String literal Error

import { car } from object_path + 'car' 

예를 던질 것이다 당신은 앱에서 어디

global.ts

export class AppSettings { 
    public static API_ENDPOINT = 'http://localhost/api/'; 
} 

을 사용할 수 있습니다 car.ts

import {Component, OnInit} from '@angular/core'; 
import {AppSettings} from '../global'; 

@Component({ 
    selector: 'car-component', 
    templateUrl: 'car.component.html', 
    styleUrls: ['car.component.css'] 
}) 

export class CarComponent implements OnInit { 
    endpoint:string; 

    constructor() { 
     this.endpoint = AppSettings.API_ENDPOINT; 
    } 

    ngOnInit() { 

    } 
}