2017-03-15 3 views
0

インポートファイルの一部を外部ファイルの定数変数として保存することは可能でしょうか? 何私が考えている: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'

何私が使用したいことはこれです:(たobject_pathはmoduleA/src/objects/common/が含まれていながら)import { car } from object_path + 'car'

私はmoduleAからプロジェクトの構造を変更した場合のインポートはもはや機能しないだろうと私はmoduleAを指し、各インポートを変更する必要があります。いくつかのファイルに定数として保存して、このファイルだけをインポートする方法はありますか?

+0

なぜあなたはプロジェクト構造を変更し続けるのですか?角度はスタイルガイドを持っています。あなたのプロジェクトをどのようにセットアップすべきかを説明します。 –

+0

@AbdelRaoofプロジェクトが成長すると混乱し、さらに構造が必要になることがあります。 – SpaceNinjaApe

答えて

0

変数をインポートステートメントの文字列に連結することはできません。グローバル設定を定義して後でクラスで使用する必要がある場合を除いて、AngularはStringリテラルエラーをスローします。

このラインは、グローバル設定を定義すると、アプリ内のどこ

global.ts

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

を使用することができ、以下の例String literal Error

import { car } from object_path + 'car' 

がスローされます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() { 

    } 
}