首页 > 【超实用】Angular如何修改当前页面网页浏览器url后面?param1=xxxparam2=xxx参数(多用于通过浏览器地址参数保存用户当前操作

【超实用】Angular如何修改当前页面网页浏览器url后面?param1=xxxparam2=xxx参数(多用于通过浏览器地址参数保存用户当前操作

app.component.html



修改当前浏览器url参数为单参数,并替换所属平台(如浏览器)的历史堆栈的顶部条目
修改当前浏览器url路径,参数为多参数,并替换所属平台(如浏览器)的历史堆栈的顶部条目

【含hash的url】{ { path1 }}

【不含hash的url】{ { path2 }}


【返回值】{ { path3 }}


【返回值】{ { path4 }}


【返回值】{ { path5 }}


{ { state_str }}


对指定的路径进行标准化,并和当前的标准化路径进行比较

如果指定的 URL 路径和标准化之后的路径一样,则返回 true,否则返回false。【返回值】{ { isEqual }}


【返回值】{ { path6 }}


【返回值】{ { path7 }}



【监听路由变化】{ {url}}

【监听路由状态】{ {state}}

app.component.ts

import { Component } from '@angular/core';
import {Location,LocationStrategy,PathLocationStrategy,
} from '@angular/common'; //引入获取、修改当前页面url相关参数的类@Component({selector: 'app-root',templateUrl: './app.component.html',styleUrls: ['./app.component.scss'],providers: [Location,{ provide: LocationStrategy, useClass: PathLocationStrategy },//引入获取、修改当前页面url相关参数的类],
})
export class AppComponent {constructor(public location: Location //引入获取、修改当前页面url相关参数的类) {}path1 = '';path2 = '';path3 = '';path4 = '';path5 = '';path6 = '';path7 = '';state_str: any = '';isEqual = false;url = '';state: any = '';// 静态方法----------------------------------------//给定 URL 参数字符串,如果需要则增加 '?' 前缀,否则原样返回。normalizeQueryParams(params: string) {return Location.normalizeQueryParams(params);}//给定 url 的两个部分,把它们连接(join)在一起,如有必要则添加一个斜杠。joinWithSlash(start: string, end: string) {return Location.joinWithSlash(start, end);}//如果 url 具有结尾斜杠,则移除它,否则原样返回。 该方法会查找第一个 #、? 之前的结尾 / 字符,之后的则不管。如果 url 中没有 #、?,则替换行尾的。stripTrailingSlash(url: string) {return Location.stripTrailingSlash(url);}// 方法----------------------------------------/*
this.location.path() //返回标准化之后的 URL 路径
// ----------------------------------------
path(includeHash: boolean = false): string
参数
includeHash	boolean
路径中是否包含一个锚点片段(Anchor fragment)。可选. 默认值是 `false`.
返回值
标准化之后的 URL 路径。
*/// 报告位置历史记录的当前状态。getState() {return JSON.stringify(this.location.getState(), null, 2);}ngOnInit() {console.log(this.location);this.location.onUrlChange((url: string, state: unknown) => {(this.url = url), (this.state = JSON.stringify(state, null, 2));console.log(url, state);});}
}

 浏览器渲染效果

更多相关:

  • 点击图片放大看效果 上代码

    WPF布局(2) 使用的DockPanel面板进行简单的布局

    DockPanel 面板是根据外边缘进行控件的拉伸,DockPanel的LastChildFill属性设置为True 时,最后一个添加的控件将占满剩余空间。  

  • 1 2 3 4 5 JS实现幻动片选项卡 6 7