为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕妹3242003 2019-12-25 15:31:25
如果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}
查看完整描述

3 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

不,您不应该在模板中使用私有变量。


虽然我喜欢drewmoore的答案,并且看到了完美的概念逻辑,但在实现上却是错误的。模板不存在于组件类中,而是在它们之外。查看此回购作为证明。


它起作用的唯一原因是因为TypeScript的private关键字并未真正使成员私有。即时编译在运行时在浏览器中进行,并且JS没有任何私有成员的概念(还可以吗?)。幸得桑德埃利亚斯为把我在正确的轨道上。


使用ngc和提前编译,如果尝试从模板访问组件的私有成员,则会出现错误。克隆演示仓库,将MyComponent成员的可见性更改为private,运行时将出现编译错误ngc。这也是提前编译的特定答案。


查看完整回答
反对 回复 2019-12-25
  • 3 回答
  • 0 关注
  • 1170 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信