小编the*_*man的帖子

如何在Angular 2单例中制作组件?

我正在使用Angular 2来构建我的Web应用程序,其中包含许多组件.我正在使用angular-cli来创建,运行和构建项目.
偶然(或幸运)我偶然发现了一个错误,我意识到我的组件的多个实例正在创建.更糟糕的是当我意识到我的代码是随机引用任何一个这样的实例而没有任何逻辑来追溯它.

例如,请检查以下方案:

  • 我登录了我的应用程序并在特定组件中进行了REST调用(在窗口调整大小事件上)
  • 这里重要的一点是每个用户都有一个在REST调用中使用的唯一ID
  • 然后我从该用户注销并使用其他用户登录
  • 我回到相同的组件并进行了相同的休息调用(再次对窗口调整大小事件),但令我震惊的是,其余一些调用是使用唯一ID或更早登录的用户进行的
  • 为了检查我的怀疑,我在构造函数中创建了一个第一个类变量,它基本上存储了值.这将转向告诉我何时实例化类.Date.now()
  • 然后我添加了一些console.log()语句,告诉我哪个实例是由我的变量的值调用的.
  • 日志证实了我怀疑多个实例确实同时存在,并且没有一定的逻辑或路径可以访问其中任何一个. 这是我的日志声明的图像. 我已经把敏感部分搞砸了.

这是我的日志声明的图像.我已经把敏感部分搞砸了.可以清楚地看到,一些休息呼叫正在使用租户1的唯一ID,而一些用于试用租户.从两个实例时间也可以非常清楚地使用两个实例.以前登录的租户的旧实例在某种程度上仍在使用中,我的组件仍然可以访问它.

我的问题是:

  1. 有没有办法让组件类单例化?
  2. 有没有办法在离开组件时销毁组件实例?

singleton angular2-components angular

7
推荐指数
1
解决办法
5620
查看次数

Angular2 GA/Final Release中ControlGroup和Control的替代方案是什么?

我在Angular2 RC1中开发了一个SPA,但是由于最终版本已经发布,我的组织决定将代码移植到Angular 2 GA.虽然我可以修复大部分破碎的东西,但我真的在与表格斗争.
在我之前的RC1代码中,我使用了ControlGroup和Control以及FormBuilder.我正在使用它们来做通常的形式的东西,如验证,添加和删除控件等.但现在显然它们已被删除,我不知道是什么取代了它们.
我尝试了API指南FormControl或FormGroup中的一些其他类,但两者都没有真正帮助.我想知道上面两个班级的替代品是什么.

编辑: FormControl和FormGroup消除了TypeScript文件中的错误,但是,在标记中,我收到inline template:0:0 caused by: No provider for FormBuilder!错误.

更新:我可以使用FormGroup,FormControl和FormBuilder.通过将ReactiveFormsModule添加到app.module.ts文件来解决上述错误.但是,我得到一个错误inline template:30:61 caused by: this.form._updateTreeValidity is not a function.
模板中的特定行是
<form #userForm="ngForm" (ngSubmit)="submitUser()" [formGroup]="userForm" novalidate autocomplete="off">

有任何想法吗?

angularjs angular2-forms angular

4
推荐指数
1
解决办法
4642
查看次数

如何隐藏通过HTTP请求收到的数据?

我目前正在使用AngularJS设计一个Web应用程序.在这里,我通过Rest API使用不同的方法获取和发布数据.我检索的数据以JSON的形式提取.

问题:
这里的问题是,当我使用https时,通过HTTP请求发送和接收的数据仍然可以在代理工具或流量监视器中看到.所有的JSON都可以从中轻松读取.
我的每个请求都在其标题中附加了一个令牌,用于处理身份验证.但是,一旦获得授权,我不希望在这样的监视工具中显示/捕获某些部分.

问题:
这些数据以加密的方式存储在数据库中,但是当通过HTTP请求发送时,它首先被解密然后发送.如何隐藏/保护这些数据?

security rest http angularjs

0
推荐指数
1
解决办法
1938
查看次数