【发布时间】:2020-04-10 20:09:29
【问题描述】:
我正在构建一个 Angular 应用程序。我通过点击事件从第一个组件导航到第二个组件。在导航到第二个组件时,我希望将一些数据从第一个组件传递到第二个组件。我已经按照教程来实现这一点,但无法做到。下面是我的代码
第一个组件.ts
export class FirstComponent implements OnInit {
@Output() messageEvent = new EventEmitter<string>();
constructor(){
}
ngOnInit() {}
sendMessagetoSecond(ahu) {
this.messageEvent.emit(ahu)
console.log(ahu)
}
第一个组件.html
<map name="ahuMap">
<area shape="rect" coords="818,232,917,262" (click)="sendMessagetoSecond()" [routerLink]="['/secondComponent']">
</map>
第二个组件.ts
ahu : string
receiveMessage($event) {
this.ahu = $event
}
第二个组件.html
<body>
<app-first (messageEvent)="receiveMessage($event)"></app-first>
ahu: {{ahu}}
<div>
....
</div>
</body>
这是我尝试过的。我面临的问题是:
1-变量未转移到第二个组件
第一个组件的 2-HTML 也正在第二个组件中加载。
我有什么遗漏或做错了吗?
【问题讨论】:
-
在
receiveMessage函数中,如果你console.log($event),你会看到什么? -
为什么你的区域组件上有一个 [routerLink]="['/secondComponent']" ?
-
从 sendMessageToSecond 方法中删除 routerLink 和路由(在发出之后)-> this.router.navigate(['/secondComponent']);
-
用于在兄弟或不相关组件之间传输数据使用服务和可观察对象。
-
如果字符串长度不大可以直接通过路由传递,如果不想让别人看到字符串,加密后传入路由
标签: html angular components