无法将信息从子组件传递到父组件

时间:2019-06-03 14:24:54

标签: angular routes output router-outlet

我正在尝试将标志从登录组件传递到应用程序组件,以便在用户登录后更改按钮。

我不确定是否可以说这是父子关系,因为我没有在应用程序组件上真正使用子装饰器,而是使用了路由器插座,但是我做这种事情的方式应该如此

在我的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:

我期望有一个从子级到应用程序的布尔变量,以便我可以操纵显示的信息。

对不起,如果我将其弄乱了,但这是我可以解释的最佳方式。 预先感谢任何愿意提供帮助的人!

1 个答案:

答案 0 :(得分:0)

  • 首先,您的应用程序组件不是“登录”之父
  • 第二个路由器出口调用一个路由器模块,并指示要去的角度

如果添加

<login-componet (childEvent)="message=$event"></login-componet>

在应用程序组件中有效,但这是不好的做法