angular - 如何在组件之间共享变量(Angular)?
问题描述
我有两个组件,我正在尝试将数据(两个变量)从登录组件导出到详细信息组件。我启用了路由。我似乎没有工作。我在哪里绑定变量?我想在一个可以使用这两个变量的新链接上显示一个详细信息组件。
登录组件.ts
export class LoginComponent implements OnInit {
imgURL = "link";
email = "email";
}
details.component.ts
export class DetailsComponent implements OnInit {
@Input() imgURL;
@Input() email;
}
details.component.html
<app-details [imgURL]="imgURL">
{{imgURL}}
</app-details>
login.component.html
<div class="container mt-5">
<h2>Google Login</h2>
<div class="row mt-5">
<div class="col-md-4 mt-2 m-auto ">
<button class="login-Btn" #loginRef>
Login with Google<img class="social-btn-icon" alt="Login with Google" src="https://hrcdn.net/fcore/assets/google-colored-20b8216731.svg">
</button>
<a routerLink="/details" routerLinkActive="active">Details</a>
</div>
</div>
</div>
解决方案
您可以实现此目的的方法之一是传递imageUrl
并email
与导航到queryParams
组件一样。然后,您可以订阅observable以获取变量。在模板上有这个:routerLink
details
ActivatedRoute's
queryParams
DetailsComponent
LoginComponent
<a [routerLink]="['/details']" [queryParams]="{ email: {{email}}, imgUrl: {{imgUrl}} }" routerLinkActive="active">Details</a>
然后DetailsComponent
你可以有这个:
export class DetailsComponent implements OnInit {
imgUrl: string;
email: string;
constructor(
private route: ActivatedRoute,
) {}
ngOnInit() {
this.route.queryParams.subscribe(params => {
this.email = params['email'];
this.imgUrl = params['imgUrl'];
});
}
}
推荐阅读
- reactjs - 如何解决有关 TypeScript 的此错误?
- android-emulator - adb root 不会在 android 模拟器上返回任何内容?
- php - 按版本排序多维数组
- json - 使用 jmeter 中的 JSON 提取器将授权令牌传递给后续请求
- angularjs - angularjs UI 网格 - 动态显示列
- javascript - python to javascript numpy ndarray 操作混乱
- flutter - Flutter:动态渲染可变长度文本,其中包含 TextField
- docker - 如何重新加载 systemd 服务?
- react-native - React Native Navigation v5 底部导航导航到新堆栈
- python - python manage.py 运行服务器不工作