0

我正在将项目更新到最新的 Angular 5 版本,但经过一些版本调整后它仍然失败。所以我基于当前版本(@angular/cli 1.5.0,@angular/* 5.0.0)创建了一个全新的 angular-project 并开始寻找问题。

事实证明,例如在装饰器中使用字符串插值不再被识别。在外部,例如在 console.log 输出中,它运行良好。

我在默认生成的 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 不存在

有没有人暗示这里出了什么问题和/或我可以指出正确的方向吗?

更新:在angular-community做出回应后,这似乎更像是@angular/cli / webpack 的问题。

4

1 回答 1

0

这是因为 Typescript 编译器只是将 TS 构建到 JS 中。并且不执行 TS。在编译代码时,编译器不知道任何运行时变量。

您只能在将在运行时执行的部分代码中使用字符串插值。

于 2017-11-09T11:18:34.443 回答