我正在将项目更新到最新的Angular 5版本,经过一些版本调整后,它仍然失败了。 所以我根据当前版本(@ angular / cli 1.5.0,@ angular / * 5.0.0)创建了一个全新的角度项目,并开始寻找问题。
事实证明,在Decorator中使用字符串插值不再被识别。 在外面,例如在console.log-output中,它工作正常。我在默认生成的AppComponent上尝试了它:
import { Component } from '@angular/core';
const name = 'app';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: [`./${name}.component.css`]
})
export class AppComponent {
title = 'app';
}
结果是一个很大的异常,你可以看到angular试图找到像以下资源:
src /
./${name}.component.css
。ts不存在
有没有人提示这里出了什么问题和/或我能指出正确的方向吗?
更新: 来自角度社区的response后,对于@ angular / cli / webpack来说,这似乎更像是一个问题。
答案 0 :(得分:0)
这是因为Typescript编译器只将TS构建为JS。 而不是执行TS。 在编译代码时,编译器不知道任何运行时变量。
您只能在将在运行时执行的代码部分中使用字符串插值。