小编Eug*_*esh的帖子

如何创建角度服务的新实例?

所以,我正在寻找问题的解决方案......好吧,让我分享我的想法,可能你可以帮助我或说我错了。

介绍:

当您创建 Angular 应用程序时,通常会创建调用 AuthService 之类的服务,其中包含方法 login、logout、refreshToken 等。

但是,您还需要将当前用户存储在某个地方,它将是登录到您的应用程序的用户。通常,您会创建类似 UserModel 的内容,其中包含名字、姓氏、余额、组、朋友等字段。因此,您将在 AuthService 中存储此模型的实例。

之后,为了获得活跃用户,您需要像这样在 @component 中注入您的 Auth 服务:

constructor(private _authService: AuthService) {
  this.user = this._authservice.user;
}
Run Code Online (Sandbox Code Playgroud)

是的?

问题:

所以,我不想注入 authService 来获取当前用户。我想要 CurrentUser 服务,该服务将被允许在所有模块中使用,并将包含有关登录用户的所有内容,例如 UserModel。

我想要这样的东西:

constructor(public user: UserService) {
}
Run Code Online (Sandbox Code Playgroud)

但是当用户注销时,我需要清理 UserService 并将每个字段重新初始化为默认值。所以,这一步是一个真正的问题。是的,当然,我可以按对象字段循环执行 for ...,但它很糟糕!我想创建 UserService 的新实例并在全局范围内重新分配。

如果您仍然不明白 - UserService 在我的根 AppModule 中被声明为提供者,如下所示:

@NgModule({
  imports: [
    ...
  ],
  declarations: [
    ...
  ],
  providers: [
    UserService
  ]
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)

问题: 如何为 UserService 创建新实例并在全局中替换它?

当用户注销时,我想这样做,我的所有组件都将获得新的、干净的 UserService 实例,没有填充字段等。当新用户登录时,我将使用 …

javascript angular

5
推荐指数
1
解决办法
7916
查看次数

控制角度重置事件

我正在编写自己的组件并想要进行自定义重置(我需要清理一些标签等)

因此,当有人打电话时,this.form.reset();我想响应此事件并进行一些清理操作。

我不想要求开发人员为我的组件发送自定义重置,例如 this.form.reset({myControl: null})

我只想对表单重置做出反应。你可以帮帮我吗?我怎样才能做到呢?我使用 ReactiveAngular 表单

例子:

<form ...>
  <my-own-component formControlName="fieldName"></my-own-component>
</form>
Run Code Online (Sandbox Code Playgroud)

angular2-forms angular

2
推荐指数
1
解决办法
2374
查看次数

标签 统计

angular ×2

angular2-forms ×1

javascript ×1