【问题标题】:Passing data between routes with Angular使用 Angular 在路由之间传递数据
【发布时间】:2018-08-08 11:31:58
【问题描述】:
假设我当前在带有输入字段的页面“A”上。
我在输入字段中输入“123”并导航到页面“B”。
(我不需要 B 页上的值“123”)。但是当我从“B”导航回“A”页面时,我希望之前输入的值“123”仍在输入字段中。
Anuglar 中是否有内置选项来执行此操作,而无需通过 route:id 传递值,例如 'pageb/123' 并且不将其存储在本地存储中?
【问题讨论】:
标签:
angular
typescript
routing
【解决方案1】:
你可以使用服务来存储一些变量
import { Injectable } from '@angular/core';
@Injectable()
export class MyService{
public myVar = '';
constructor(){}
}
然后在app.module.ts的provider中添加这个服务
现在您可以在组件中使用此服务。
import { MyService } from '...';
export class AComponent implements OnInit {
constructor(private myService: MyService){}
ngOnInit(){
this.myService.myVar = 'something';
}
}
【解决方案2】:
您可以将其存储在服务中。没有其他方法,因为当您离开时,您的组件实例被破坏。如果您向后导航,则会创建该组件的新实例。