0

我最近将应用程序从 Angular 1.7 迁移到 Angular 8。在加载应用程序时,它无法加载模板。然后我在加载指令中使用了 require('./tempalte-name') 。但随后它给出了“模块解析失败:意外令牌(1:0)”的异常

我以这种方式使用 raw-loader => require('raw-loader!./template-name') 控制台中没有错误。但在浏览器窗口中,模板显示为 [object Module]。

当我用原始模板替换 require('raw-loader!./template-name') 时,例如'Test'。它显示正确

有什么方法可以获取模板 html 而不是 [object Module]。

4

2 回答 2

3

尝试这个

// @ts-ignore
import * as TEMPLATE from 'raw-loader!./myComponent.html';
...
{
  ...
  template: TEMPLATE.default
  ...
}

Int 对我来说很好用(angularjs + angular9 + angular-cli)

于 2020-02-07T09:11:35.577 回答
0

尝试将@angular-devkit/build-angular降级到版本0.802.2

0.803.0 开始,它显示 [object Module]

或者您可以尝试完全不同的方法 - 而不是使用template: require()您可以使用templateUrl但您必须将 html 文件复制到目标文件夹。

为此,您必须更改 angular.json 并设置资产

{
    "glob": "**/*.html",
    "input": "apps/lopa/src/app-ajs",
    "output": "/app-ajs"
},

并在您的组件中使用这样的完整路径:

templateUrl: 'app-ajs/components/component-name.html'
于 2020-01-13T11:41:38.223 回答