【问题标题】:ReferrenceError: __moduleName is not defined Angular 2ReferenceError:__moduleName 未定义 Angular 2
【发布时间】:2017-01-30 11:43:12
【问题描述】:

所以我发现了这个技巧,我们可以使用 __moduleName 以便 systemjs 能够知道我们当前的位置,而我们不需要指定整个文件夹路径。

组件

@Component({
    moduleId: __moduleName,
    selector: 'app-customer',
    templateUrl: 'customer.component.html'
})

app.d.ts

declare var __moduleName: any;

我已经将 __moduleName 声明为全局变量,但控制台仍然显示引用错误。有什么建议吗?

【问题讨论】:

  • 同样的问题。附带说明一下,使用旧 angular2 演示中的 module.id 版本几乎可以工作,但它会继续在子组件中渲染父组件。

标签: angularjs angular components systemjs


【解决方案1】:

这与您注册转译的格式有关。 'system' 注册 __moduleName 变量以使用模块的相对路径。这是节点模块(js 转译文件),而不是角度模块(节点模块包)。如果您使用“commonjs”格式,Node 还有一个默认值module.id

您可以检查 tsconfig.json 的设置:

{
"compilerOptions": {
  ...
  "module": "amd | umd | system | commonjs | es6 | es2015 | none",
  ...
}

}

https://www.typescriptlang.org/docs/handbook/compiler-options.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-09
    • 2017-10-21
    • 2016-10-28
    • 2015-07-12
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 2017-12-12
    相关资源
    最近更新 更多