我已经使用JWT创建了一个登录服务.
登录成功后,我返回一个用户对象.
我有一个loginComponent(将数据绑定到模板)和loginService(处理https调用)
问题是,一旦用户登录,我不清楚让userService在名为“user”的对象中检索新数据的最佳方法,然后userComponent更新模板上的用户对象.只需将观察者放在userService.user对象上,就可以轻松实现角度1.
我尝试输入和输出无效,eventEmitters,Observables和getter and setters. getter和setter工作,但强迫我将所有内容存储在“val()”中
有人可以告诉我实现这个目标的最佳方法吗?
> User Component使用user.firstName,user.lastName等呈现模板.
>最初用户如果是空对象
>登录服务需要设置UserService.user
> userComponent需要检测更改并更新DOM.
提前致谢!
解决方法
– 在UserService中,声明类型为Subject< User>的属性用户.
user: Subject<User> = new Subject();
– 将其暴露在外面作为可观察的:
user$: Observable<User> ... this.user$= this.user.asObservable();
login(userName: string,password: string) { //... this.user.next(new User("First name","Last name")); }
– 在UserComponent中,订阅UserServive的用户$observable以更新视图.
this.userService.user$.subscribe((userData) => {this.user = userData;});
– 在您看来,只需使用字符串插值:
{{user?.firstName}} {{user?.lastName}}
这是工作的plunker:http://plnkr.co/edit/qUR0spZL9hgZkBe8PHw4?p=preview
原文地址:https://www.jb51.cc/js/155601.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。