【发布时间】:2019-10-10 16:20:07
【问题描述】:
从 组件 A 我有所有用户的列表,当我点击 EDIT 时,我将带有用户 ID 的数据发送到服务并从服务发送到 组件 B 在 service.ts 我创建
selectedUser = new Subject<any>();
来自组件 A
this.userService.selectedUser.next(this.user);
在组件B
中ngOnInit() {
this.userService.selectedUser.subscribe(
user => {
this.user = user;
console.log(this.user);
},
data => {
if (this.user === undefined) {
this.addNewUserState = true;
this.createForm();
} else {
this.addNewUserState = false;
this.addNewUserForm.controls["username"].setValue(this.user.username);
this.addNewUserForm.controls["firstName"].setValue(this.user.firstName);
}
}
)
};
在第一次 DETAIL 单击时,我没有获取数据,在网络选项卡中,我获取所选用户的数据,但 consol.log() 没有记录任何内容
这是预览
https://ttprivatenew.s3.amazonaws.com/pulse/bozzodj/attachments/11660135/TinyTake10-10-2019-10-00-04.mp4
【问题讨论】:
-
subscribe不能这样工作,它需要一个observer对象或回调函数(下一个,错误,完成)所以你需要在这里做的是将回调合并到一个反正你的问题不清楚,你提到了console,但你的代码没有任何控制台功能 -
我添加了 console.log()... 你能告诉我如何合并回调的例子吗?
-
ngOnInit() { this.userService.selectedUser.asObservable().subscribe( user => { this.user = user; console.log(this.user); if (this.user == = undefined) { // 代码 } else { // 代码 } } ) };
-
@Ezzabuzaid thnx,但同样的问题在这里......
-
您能否使用@Ezzabuzaid 指出的正确语法,然后写下您遇到的错误。
标签: angular