Angular 如何在同一路由器出口上的一个组件和另一个组件之间传递数据

Angular 如何在同一路由器出口上的一个组件和另一个组件之间传递数据,angular,angular5,Angular,Angular5,app.component.html 我有两个部分 1) 重置密码 2) 登录组件 在同一路由器出口上 在成功重置密码时。我正在重定向到登录组件。 如何将数据从ResetPassword传递到LoginComponent 我试着用subscribe方法来做这件事,但不起作用 有人能帮我修一下吗 登录服务 export class LoginService{ private messageSource = new BehaviorSubject(''); currentMessag

app.component.html

我有两个部分 1) 重置密码 2) 登录组件 在同一路由器出口上

在成功重置密码时。我正在重定向到登录组件。 如何将数据从ResetPassword传递到LoginComponent

我试着用subscribe方法来做这件事,但不起作用

有人能帮我修一下吗

登录服务

export class LoginService{

 private messageSource = new BehaviorSubject('');
    currentMessage = this.messageSource.asObservable();

setResetPassword(message: string) {
        this.messageSource.next(message)
    } 
}
登录组件

OnInit{

this._loginService.currentMessage.subscribe(message => {

    if (message !== undefined && message !== "") {
                this.toastr.info(message);
    }
});

}
OnInit(){

this._loginService.setResetPassword("Password Changed Successfully");

}
重置组件

OnInit{

this._loginService.currentMessage.subscribe(message => {

    if (message !== undefined && message !== "") {
                this.toastr.info(message);
    }
});

}
OnInit(){

this._loginService.setResetPassword("Password Changed Successfully");

}

为了在组件之间传递数据,我们基本上使用
@Input
@Output
,但在您的情况下,我认为这不是一个好方法


因此,您只需将您的
消息作为查询参数字符串(如果数据非机密)从重置密码传递到登录组件,然后按照要求显示。

要在组件之间传递数据,基本上我们使用
@Input
@Output
,但在您的情况下,我认为这不是一个好办法


因此,您只需将您的
消息作为查询参数字符串(如果数据是非机密的)从重置密码传递到登录组件,然后按照要求显示。

登录服务中尝试以下代码。

import { Injectable, EventEmitter} from "@angular/core";

@Injectable()
export class LoginService {

   currentMessage = new EventEmitter();

   setResetPassword(message: string) {
      this.currentMessage.emit(message)
   } 
}
并在提交功能中移动您的重置组件代码

resetPassword() {
   this._loginService.setResetPassword("Password Changed Successfully");
}

谢谢。

登录服务中尝试以下代码。

import { Injectable, EventEmitter} from "@angular/core";

@Injectable()
export class LoginService {

   currentMessage = new EventEmitter();

   setResetPassword(message: string) {
      this.currentMessage.emit(message)
   } 
}
并在提交功能中移动您的重置组件代码

resetPassword() {
   this._loginService.setResetPassword("Password Changed Successfully");
}
谢谢。

换一件对我有用的衣服 请检查以下代码以供参考

<div><a></a></div>
<div><b></b></div>
我不想改变它对我有用吗 请检查以下代码以供参考

<div><a></a></div>
<div><b></b></div>

这是你的答案。使用
@Input
@Output
您有两个选项:服务和OnInit生命周期挂钩或输入和输出事件发射器。这是你的答案。使用
@Input
@Output
您有两个选项:服务和OnInit生命周期挂钩或输入和输出事件发射器。