我正在尝试将标志从登录组件传递到应用程序组件,以便在用户登录后更改按钮。
我不确定是否可以说这是父子关系,因为我没有在应用程序组件上真正使用子装饰器,而是使用了路由器插座,但是我做这种事情的方式应该如此
在我的appComponent.html上,
<router-outlet (childEvent)="message=$event"></router-outlet>
Test: {{message}}
在我的AppComponent上
public message;
在我的loginComponent上
@Output() public childEvent = new EventEmitter();
.
.
.
loginUser(): void {
this.loginService.loginUser(this.userNameLogin, this.userPasswordLogin).subscribe(
data => {
if (data.statusCode === 202) {
.
.
.
this.childEvent.emit('true');
}
},
error => {
.
.
.
}
);
}
我认为这是与该主题相关的所有代码,并且我已经尝试将代码从
更改(childEvent)="message=$event"
到
(childEvent)="message($event)"
这也不起作用
发生的情况是{{message}}没有显示任何内容,并且应该在测试后显示为true:
我期望有一个从子级到应用程序的布尔变量,以便我可以操纵显示的信息。
对不起,如果我将其弄乱了,但这是我可以解释的最佳方式。 预先感谢任何愿意提供帮助的人!
答案 0 :(得分:0)
如果添加
<login-componet (childEvent)="message=$event"></login-componet>
在应用程序组件中有效,但这是不好的做法