属性“X”是私有的,只能在类“xyzComponent”中访问

新手上路,请多包涵

我正在尝试为我正在关注此 博客生产 构建 angular2 应用程序。在 tsc 编译 发生时,我的 ngc 成功编译后,它会生成以下错误,如图所示:

搜索了一段时间后,我发现这个 博客 解释了 “上下文属性” 部分中的问题,我无法正确理解它可能会给你一些好主意,让你知道发生了什么错误。基本上,当我们将变量设为私有时,我们会得到 “错误:属性是私有的,只能在类中访问”

原文由 Sumit Khanduri 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 582
2 个回答

对于给定组件,其模板访问的所有成员(方法、属性)在 AOT 编译场景中必须是公共的。这是因为模板变成了 TS 类。生成的类和组件现在是 2 个独立的类,您不能跨类访问私有成员。

简而言之:如果您想使用提前编译,则无法访问模板中的私有成员。

为了更好地解释 https://github.com/angular/angular/issues/11422

原文由 harish gadiya 发布,翻译遵循 CC BY-SA 3.0 许可协议

只需删除变量前面的“私人”访问修饰符即可。如果它是在构造函数中声明的实例,那么只需将“private”更改为“public”。

原文由 vaibhavi dhopate 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进