javascript - $location.search() 在 Angular 7 中等效

标签 javascript angular angular7 angular-components

我正在将 Angular JS 迁移到 Angular 7。我正在查看这段代码并尝试在 Angular 7 中实现。

在服务中注入(inject)了$location,下面的方法重新设置查询参数。

function resetAllOptions() {
            // Clears query params
            $location.search('');

}

function setQueryParameters() {
    // Sets query parameters
            $location.search({
                searchType: searchType,
                searchField: searchField,
                searchValue: searchValue,
                searchValueTwo: searchValueTwo,
                searchValueThree: searchValueThree
            });
}

我如何在 Angular 7 中实现它?

最佳答案

参数在 Angular v7 中的处理方式完全不同,因为它们是路由的一部分。因此,没有直接的线路与线路等同于您要完成的任务。

在 Angular v2+ 中,存在三种不同类型的参数,因此您的第一步是定义所需的类型。

这是一篇详细描述不同类型的文章:

Send data through routing paths in Angular

假设您想坚持使用查询参数:

您可以像这样在 HTML 中设置它们:

          <a [routerLink]="[product.id]"
             [queryParams]="{filterBy: listFilter, showImage: showImage}">
            {{ product.productName }}
          </a>

或者像这样的代码:

this.router.navigate([`/search`],
              {queryParams: {
                     searchType: searchType,
                     searchField: searchField, // ...
               }});

关于javascript - $location.search() 在 Angular 7 中等效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54772646/

相关文章:

javascript - 修复 Firefox 在 setInterval 上抛出错误。

php - HTML 表单中的 TAB 按钮

javascript - 访问 Sourcetree 中的旧分支时出错

angular - 在模板中使用 Observable

具有多个数据的 Angular 5 共享服务

angular - 如何在 Angular 7 上删除 URL 中的 Hash(#)

javascript - 缓存文件直到下一页加载

javascript - HTML5 本地 session 存储在链接点击上?

javascript - 无法在组件之间传递数据

css - 在组件中使用 CSS 动画显示和隐藏