Angular2-可以在模板中访问私有变量吗?

如果private在组件类上声明了变量,我是否应该能够在该组件的模板中访问它?


@Component({

  selector: 'my-app',

  template: `

    <div>

      <h2>{{title}}</h2>

      <h2>Hello {{userName}}</h2> // I am getting this name

    </div>

  `,

})

export class App {

  public title = 'Angular 2';

  private userName = "Test Name"; //declared as private

}


慕妹3242003
浏览 1195回答 3
3回答

守着一只汪

不,您不应该在模板中使用私有变量。虽然我喜欢drewmoore的答案,并且看到了完美的概念逻辑,但在实现上却是错误的。模板不存在于组件类中,而是在它们之外。查看此回购作为证明。它起作用的唯一原因是因为TypeScript的private关键字并未真正使成员私有。即时编译在运行时在浏览器中进行,并且JS没有任何私有成员的概念(还可以吗?)。幸得桑德埃利亚斯为把我在正确的轨道上。使用ngc和提前编译,如果尝试从模板访问组件的私有成员,则会出现错误。克隆演示仓库,将MyComponent成员的可见性更改为private,运行时将出现编译错误ngc。这也是提前编译的特定答案。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

AngularJS