0

我已经阅读了几篇关于 Angular 8 中的深度链接的文章。但还没有找到更好的解决方案来解决我的问题。

问题要求: 在此处输入图像描述

请参考上面的截图。我有两个小部件Form WidgetTable Widget的简单 Angular 应用程序。表格小部件由表单小部件中执行的搜索驱动浏览器中的 url 是“localhost/dashboard/widget/actionForm”

  1. 执行表单搜索时。我希望表单数据成为 URL 的一部分,例如“localhost/dashboard/widget/actionForm;Param_A=test1;Param_B=test2”,并且表格小部件也可以动态更新

  2. 当我复制 URL“localhost/dashboard/widget/actionForm;Param_A=test1;Param_B=test2”并在新浏览器中启动它时。它应该能够使用 url 中的参数来获取表单状态。

这只是一个例证。在理想情况下,表单中会有很多参数。

注意:URL 参数也需要编码。但我想这是一个很容易解决的问题。

4

1 回答 1

0
  1. url 字符有一个限制,取决于各种参数。你可以在这里查看

  2. 当您执行搜索时,这些参数应附加到 url:

       this.router.navigate([], {
            queryParams: {
                _t: param1,
                _t2: param2
            }
        });
    
  3. 当您使用 url 重新加载时,您应该能够使用这些参数:

    this.route.queryParamMap.subscribe(params => {
        let t= params.get('_t');
        //.... so on
        pass this to table widget
    });
    
  4. 如果您的参数比字符限制长得多,并且您想在同一浏览器上保持会话,您始终可以使用本地存储和会话存储

于 2020-04-07T14:27:26.957 回答