Angular 2. 属性是私有的,只能在类内访问
Posted
技术标签:
【中文标题】Angular 2. 属性是私有的,只能在类内访问【英文标题】:Angular 2. Property is private and only accessible within class 【发布时间】:2017-08-27 05:09:55 【问题描述】:我正在尝试使用 AOT 编译一个 Angular 2 应用程序。在我的项目中,我使用的是 angular-2-json-schema-form,它会导致如下错误:
属性是私有的,只能在类中访问
在编译我的应用程序时。
我认为问题出在 TypeScript 中。有人帮我解决这个问题。
【问题讨论】:
如果您需要帮助,请发布您的代码 您正在访问模板中的private
字段。不要那样做。
我没有访问模板中的私有字段。我只是在使用这个包npmjs.com/package/angular2-json-schema-form 以及其中的所有问题
@drewmoore,是否有一些 tsconfig 属性可以禁用这种打字稿行为?
@Noob 不 - 不是 tsc 抛出,而是 ngc,这是设计使然。如果错误来自该库,则应将其作为错误提交给他们的 repo。
【参考方案1】:
根据GitHub Issue,这是因为 prod 构建默认使用 Ahead of Time 编译。您可以通过关闭 AOT 或使用公共属性来解决此问题。
【讨论】:
【参考方案2】:最可能的问题是您在 component.html 中有一些类似 myService.value 的内容,或者您有一个枚举并在您的 component.html 中直接使用(例如 .
如果您使用 myService.value,请使用 getter
get value()
return myService.value;
//in your .html
value
如果您的问题是因为您使用的是枚举,请声明一个变量
IEnum=Enum
//in your .html
<div *ngIf="value==IEnum.Case1">
【讨论】:
以上是关于Angular 2. 属性是私有的,只能在类内访问的主要内容,如果未能解决你的问题,请参考以下文章
Angular 7:基于产品构建:属性“服务”是私有的,只能在“组件”类中访问