加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

typescript – Angular2 – 应该在模板中访问私有变量吗?

发布时间:2020-12-17 08:42:24 所属栏目:安全 来源:网络整理
导读:如果变量在组件类上声明为私有的,那么我应该能够在该组件的模板中访问它吗? @Component({ selector: 'my-app',template: ` div h2{{title}}/h2 h2Hello {{userName}}/h2 // I am getting this name /div `,})export class App { public title = 'Angular 2
如果变量在组件类上声明为私有的,那么我应该能够在该组件的模板中访问它吗?
@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
}
编辑:此答案现在不正确。当我发布它的时候,没有关于这个话题的官方指导,但正如在解释@ Yaroslov的(优秀,正确的)答案,不再是这种情况:Codelizer现在警告和AoT编译将失败对组件模板中的私有变量的引用。也就是说,在概念层面上,这里的一切仍然有效,所以我会离开这个答案,因为它似乎是有帮助的。

是的,这是预期。

请记住,私有和其他访问修饰符是Typescript构造,而组件/控制器/模板是角色构造,Typescript什么也不知道。访问修饰符控制类之间的可见性:使字段私有防止其他类访问它,但模板和控制器是类中存在的东西。

这在技术上不是真的,但是(代替理解类如何与装饰器及其元数据相关联),以这种方式思考它可能是有帮助的,因为重要的事情(IMHO)是从对模板和控制器的思考转变为单独的实体将它们视为组件构造的统一部分 – 这是ng2心理模型的主要方面之一。

以这种方式思考,显然我们期望组件类中的私有变量在其模板中可见,同样的原因,我们期望它们在该类的私有方法中可见。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读