我想在 Angular 7 中的两条路线之间导航,并在它们之间发布数据。但我不想在 URL 中显示这些参数。如何以正确的方式去做?
此刻我正在努力解决这样的问题:
this.router.navigate(['/my-new-route', {data1: 'test', test2: 2323, test: 'AAAAAAA'}]);
它将我的网址更改为
http://localhost:4200/my-new-route;data1=test;test2=2323;test=AAAAAAA
如何从 url 中取消这些数据:
http://localhost:4200/my-new-route
Edit:
My case:
- /form - 具有某种形式的路由
- /options - 带有一些数据的路线
在 /form 路由上 - 用户有一些带有空字段的表单需要手动填写
但在 /options 页面上有一些预设配置,当用户选择一个时导航到 /form 并且字段会自动填充
当他们移回另一个页面并再次返回 /form 时 - 应该看到空表单。只有从 /options 到 /form 的链接才应填写这些字段。
您可以创建一项服务并在两个组件(您要从中移出的组件和要移至的组件)之间共享该服务。
在服务中以及之前声明要传递给 URL 的所有参数router.navigate([])
,设置服务中参数的值。
您可以使用该服务从其他组件访问这些参数。
例子:
共享服务
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class SharedService {
data1;
test2;
test;
}
组件1
import { SharedService } from 'location';
import { Router } from '@angular/router';
...
constructor(private _sharedService: SharedService,
private _router: Router) { }
...
this._sharedService.data1 = 'test'
this._sharedService.test2 = 2323;
this._sharedService.test = 'AAAAAAAA';
this._router.navigate(['/my-new-route']);
...
组件2
import { SharedService } from 'location';
...
private test2;
private test;
private data1;
constructor(private _sharedService: SharedService){ }
ngOnInit() {
this.data1 = this._sharedService.data1;
this.test2 = this._sharedService.test2;
this.test = this._sharedService.test;
...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)