【发布时间】:2021-02-17 14:50:05
【问题描述】:
我在组件之间共享数据并为此使用发射器。
我在 MenuComponent 模板 html 中渲染“ 菜单组件 在我的另一个组件中 然后在我的另一个组件中
登录组件://if i add , then app crash
<app-login (sendFromLogin)="logIn($event)"></app-login>
<app-menu-login (sendFromLogin)="logIn($event)" (sendFromMenuLogin)="Logoff($event)" ></app-menu-login>
@Component({
selector:'app-menu',
templateUrl:'./menu.component.html'
})
export class MenuComponent implements OnInit ,AfterViewInit,OnDestroy {
constructor( private apiService:CheatService,
private router:Router,private sharedService:SharedService
)
{
}
ngAfterViewInit(): void {
}
ngOnInit(): void {
}
//here is called
Logoff(event:UserFlag)
{
//do sttuf
}
//mever is called
logIn(data:UserFlag)
{
//do sttuf
}
}
MenuLoginComponent:
<li
<a (click)="logout()">Log Out</a>
</li>
@Component({
selector:'app-menu-login',
templateUrl:'./menu-login.component.html',
styleUrls:['./menu-login.component.css']
})
export class MenuLoginComponent implements OnInit{
@Input()
sendFromMenuLogin = new EventEmitter<any>();
@Output()
sendData1= new EventEmitter<any>();
constructor(private apiService:CheatService,
private router:Router,private sharedService:SharedService) {}
ngOnInit(): void {
}
logout()
{
this.sendFromMenuLogin.emit(this.sendData1);
}
<button (click)="login">Login</button>
@Component({
selector:'app-login',
templateUrl:'./login.component.html'
})
export class LoginComponent implements OnInit{
@Input()
sendFromLogin = new EventEmitter<any>();
@Output()
sendData2 = new EventEmitter<any>();
constructor(private fb: FormBuilder,
private router: Router,) {
}
ngOnInit(): void {
}
ngAfterViewInit(): void {
}
login()
{
this.sendFromLogin.emit(this.sendData2);
}
}
【问题讨论】:
-
发布完整代码。看起来你有 2 个伴奏,但只有 1 个被调用(app-menu-login)
-
嗨,我添加了更多信息
标签: angular