angularjs - 在 angular2 constructor() 中使用 private 与 public 关键字有什么不同

标签 angularjs ionic-framework constructor private public

我开始学习 Angular v2 和 ionic v2。

在 ng2 英雄教程中,他们在构造函数中使用 private 关键字,但在 ionic 样板源中,他们在构造函数中使用 public 关键字。

Angular2教程

heroes: Hero[];

constructor(
     private heroS: HeroService,
     private router: Router
) { }

ngOnInit() { 
    this.heroS.getHeroes().then(heroes => {
        this.heroes = heroes;
    })
}

ionic 教程

constructor(public navCtrl: NavController, public navParams: NavParams) {
}

反编译成es5后,.js文件中的public和private是一样的。 但我真的不明白有什么区别。

最佳答案

我相信 Ionic 样板代码在构造函数中使用公共(public)成员,以便能够利用 Ahead of Time (AoT) Compilation 。 请参阅Angular 2 Ahead-of-Time compiler: must I make all class properties public? .

关于angularjs - 在 angular2 constructor() 中使用 private 与 public 关键字有什么不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42693032/

相关文章:

javascript - 在 Controller 之间共享数据 Angular JS

javascript - 如何在 Angular UI Accordion (uib- Accordion )中动态加载 HighChart?

angularjs - 如何将 GET 变量传递给 Angular 应用程序

javascript - 按 ionic 3 中的数据分组列表

Java - 一般处理子类的创建

java - 我的构造函数没有给出所需的输出

javascript - AngularJS http eventHandlers 与 uploadEventHandlers

html - 在 angularjs 和 ionic-v1 中的一个公共(public)标题栏中只显示一个图标

css - 如何重新计算 ionic 排的高度

C++ 类表达式必须是可修改的左值