带TS 3.0.3的Angular 6中的TemplateUrl无法正常工作

时间:2018-09-24 21:42:17

标签: angular typescript

我的开发环境:

  • Mac OS 10.13.6
  • 角度6
  • TypeScript 3.0.3
  • 节点8.11.4
  • NPM 6.4.1
  • 不使用Angular CLI或WebPack

以下代码是基本的Angular app.component.ts 文件,它可以正常工作:

import { Component } from '@angular/core';

@Component({
    selector: 'app-main',
    template: '<h1>Hello, {{name}}</h1>'
})

export class AppComponent {
    name = 'Hello Darkness My Old Friend';

    constructor() {
     //some method
    }    
}

但是,当我用以下内容替换第5行时,它将不起作用:templateUrl: './app.component.html'它拒绝加载外部模板,并且浏览器窗口为空白。我决定不发布 app.component.ts 代码,因为我100%确信它是正确的。它已正确导入并列在@ngModule下。另外,我在控制台中遇到此错误,但找不到很多错误。看起来与zone.js有关系吗?但是,它可能与该问题无关:

Unhandled Promise rejection: Failed to load app.component.html ; Zone: <root> ; Task: Promise.then ; Value: Failed to load app.component.html undefined zone.js:665:17
api.onUnhandledError
http://127.0.0.1:8080/node_modules/zone.js/dist/zone.js:665:17
handleUnhandledRejection
http://127.0.0.1:8080/node_modules/zone.js/dist/zone.js:692:9
_loop_1

//a few more errors, yada yada yada

如果有人可以快速修复技术问题,我将不胜感激。但是,现在我正在考虑可能必须从结构上解决此问题。我可能必须回滚到Angular 5和TS 2.7。如果其他人没有使用CLI或WebPack,并且您在templateUrl上没有问题,请发布您的设置的项目符号列表,以便我自己复制一下,并希望能克服这个问题?谢谢!

1 个答案:

答案 0 :(得分:0)

确保使用@ angular-cli和本指南进行升级。 您应该真正使用cli,因为它知道如何更新package.json甚至更重要的是您的配置! 您可能需要更新一些配置,并且您还应该由Angular决定要使用哪个TS版本,尚不支持AFAIK TS 3和更高版本。请尝试2.9.2。 但是我建议您进行干净的项目设置。集成任务运行程序可能很麻烦,但是如果您很好地使用了角度cli及其选项,则不需要笨拙。