Angular - 绑定公共/私有属性

Posted

技术标签:

【中文标题】Angular - 绑定公共/私有属性【英文标题】:Angular - bind public/private properties 【发布时间】:2018-05-09 07:56:10 【问题描述】:

我在 angular.io 做 Angular 教程,我在这里阅读:

constructor(**public** messageService: MessageService) 

messageService 属性必须是 public,因为您即将在模板中绑定到它。

Angular 只绑定到 public 组件属性。

我在这里强调public

但是,如果我在那里将 public 更改为 private,一切都会像以前一样工作......

所以请引导我到可以打消疑虑的地方。

我的 Angular 版本:5.0.0,

谢谢!

【问题讨论】:

AFAIK,AOT 编译会抱怨private 属性,AOT 捆绑包也是 prod 构建的首选.. 【参考方案1】:

这只是一个建议,以便您的项目与 AOT(Ahead Of Time)类型的构建过程兼容。您可以通过使用以下命令创建 AOT 构建来查看其影响:

ng build --prod

【讨论】:

【参考方案2】:

如果您使用 Angular CLI 构建应用程序,在某些版本中,CLI 会吞下 Angular 在构建应用程序时抛出的错误。随着 CLI 更新,他们最终开始向用户显示错误并阻止应用程序成功构建。

查看 GitHub 上的this 问题以获取更多信息。

【讨论】:

【参考方案3】:

是的,你是对的,但在生产模式下你不能将公共更改为私人。

this 在生产模式下显示错误

【讨论】:

以上是关于Angular - 绑定公共/私有属性的主要内容,如果未能解决你的问题,请参考以下文章

私有属性的名称 [Binable] 生成

TSLint - 您只能绑定到公共类成员(模板使用公共)

我应该使用公共属性和私有字段还是公共字段来存储数据?

为啥类成员是私有的而属性是公共的? [复制]

VB.Net 属性 - 公共获取,私有集

javascript 对象私有属性的行为就像是公共的