【发布时间】:2019-12-07 02:01:24
【问题描述】:
我正在使用 Angular 7,我想用对象数据打开一个新的 Angular 选项卡。 当用户点击按钮时,对象数据将被发送并打开一个包含数据的新选项卡。
我为此尝试了 3 件事。
- 我使用了“window.open()”。我可以轻松打开一个新标签,但无法发送像对象数据这样的大数据。
让 win = window.open('test-child', '_blank');
win.document.getElementById('text1');
- 我也用过路由器。但是它无法打开新标签。只需导航到网址。
this.router.navigate(['test', obj]);
- 我使用了数据服务。我做了数据服务,有setValue和getValue。但是,子组件无法获取数据。
例如)data.service.ts
private _data = {};
setValue(value) { this._data = value; }
getValue() { return this._data;}
test.ts
obj = { name: 'pat', age: 30 };
openNewTab() {
this.data.setOption(this.obj);
windows.open('test-child', '_blank');
}
test-child.ts
data: any;
constructor(private dataService: DataService) {}
ngOnInit() { this.data = this.dataService.getValue(); }
那么在这种情况下,我如何发送对象数据以在 Angular 中打开一个新的组件选项卡?请任何人帮助我。
【问题讨论】:
-
尝试使用“虚拟标签”。意思是应用内的标签
-
“Angular 标签”是指运行 Angular 应用程序的新浏览器标签?数据是否必须来自原始选项卡?您可以将新选项卡指向从服务器或浏览器的本地存储中检索数据的特定 URL。
-
caniuse.com/#feat=x-doc-messaging 您可以使用文档消息传递。这与角度无关。
标签: angular typescript angular-router