所以,我正在寻找问题的解决方案......好吧,让我分享我的想法,可能你可以帮助我或说我错了。
介绍:
当您创建 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 实例,没有填充字段等。当新用户登录时,我将使用 …
我正在编写自己的组件并想要进行自定义重置(我需要清理一些标签等)
因此,当有人打电话时,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)