我想知道是否可以将我的导入URL的一部分保存为某个外部文件中的常量变量。 我的想法:
项目结构:
Project
|
+--moduleA
| |
| +--src
| |
| +--objects
| |
| +--common
| |
| +--car.ts
|
+--moduleB
|
+--src
|
+--objects
|
+--common
|
+--parkingLot.ts
在tsconfig.json中,属性baseUrl
设置为.
因此,如果我想在我的Car.ts
组件中使用parkingLot
组件,我必须执行此操作:import { car } from 'moduleA/src/objects/common/car.ts'
。
我想要使用的是:import { car } from object_path + 'car'
(而object_path包含moduleA/src/objects/common/
)
如果我从moduleA
更改项目结构,导入将不再起作用,我将不得不更改引用moduleA的每个导入。有没有办法在某个文件中存储常量,然后只导入这个文件?
答案 0 :(得分:1)
您无法将变量与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() {
}
}