Angular 通过注入 $location 获取与修改当前页面URL

以下获取与修改的 URL 以  ( http://172.16.0.88:8100/#/homePage?id=10&a=100  ) 为例

【一】获取 (不修改URL)

[javascript] view plain copy

  1. //1.获取当前完整的url路径
  2. var absurl = $location.absUrl();
  3. //http://172.16.0.88:8100/#/homePage?id=10&a=100
  4. //2. 获取当前url路径(当前url#后面的内容,包括参数和哈希值):
  5. var url = $location.url();
  6. // 结果:/homePage?id=10&a=100
  7. //3. 获取当前url的子路径(也就是当前url#后面的内容,不包括参数)
  8. var pathUrl = $location.path()
  9. //结果:/homePage
  10. //4.获取当前url的协议(比如http,https)
  11. var protocol = $location.protocol();
  12. //结果:http
  13. //5.获取主机名
  14. var localhost = $location.host();
  15. //结果:172.16.0.88
  16. //6.获取当前url的端口
  17. var port = $location.port();
  18. //结果:8100
  19. //7.获取当前url的哈希值
  20. var hash = $location.hash()
  21. //结果:http://172.16.088
  22. //8.获取当前url的参数的序列化json对象
  23. var search = $location.search();
  24. //结果:{id: "10", a: "100"}

【二】修改 (改变URL相关内容)

[javascript] view plain copy

  1. //1 修改url的子路径部分(也就是当前url#后面的内容,不包括参数):
  2. $location.url(‘/validation‘);
  3. //结果:http://172.16.0.88:8100/#/validation
  4. //2 修改url的哈希值部分
  5. $location.hash(‘myhash3‘);
  6. //结果:http://172.16.0.88:8100/#/homePage?id=10&a=100#myhash3
  7. //3 修改url的参数部分(第一个参数表示url参数的属性名,第二个参数是该属性名的属性值,如果是已有属性名,则修改,如果不是已有属性,则新增)
  8. $location.search(‘id‘,‘111‘)
  9. // 结果(修改参数值):http://172.16.0.88:8100/#/homePage?id=111&a=100
  10. $location.search(‘ids‘,‘111‘)
  11. // 结果(新增ids参数): http://172.16.0.88:8100/#/homePage?id=111&a=100&ids=111
  12. //4.一次性修改多个参数
  13. $location.search({id:‘55‘,‘a‘:‘66‘})
  14. //结果:http://172.16.0.88:8100/#/homePage?id=55&a=66#myhash3
  15. //5.第一个值表示url参数的属性名,如果是已有属性名,则删除该属性,如果不是已有属性,那就等于没改过
  16. $location.search(‘age‘,null)

【三】修改URL但不存入历史记录

在上面的修改url的方法的时候,每修改一次,url都会被存入历史记录,可以使用后退按钮回到修改前的url,如果不想要这种效果,而仅仅是替换当前的记录,可以使用  $location.path(‘/validation‘).replace();

原文地址:https://www.cnblogs.com/sunwk/p/9044888.html

时间: 2024-11-08 21:32:33

Angular 通过注入 $location 获取与修改当前页面URL的相关文章

Angular中通过$location获取地址栏的参数详解

Angular中通过$location获取url中的参数 最近,项目开发正在进行时,心有点燥,许多东西没来得及去研究,今天正想问题呢,同事问到如何获取url中的参数,我一时半会还真没想起来,刚刚特意研究了一下,常用的方法就以下几种: 1.获取当前完整的url路径 var absurl = $location.absUrl();     //http://88:8100/#/homePage?id=10&a=100 2. 获取当前url路径(当前url#后面的内容,包括参数和哈希值) var ur

angular中通过$location获取路径(参数)的写法

以下获取与修改的 URL 以  ( http://172.16.0.88:8100/#/homePage?id=10&a=100  ) 为例 [一]获取 (不修改URL) //1.获取当前完整的url路径 var absurl = $location.absUrl(); //http://172.16.0.88:8100/#/homePage?id=10&a=100 //2. 获取当前url路径(当前url#后面的内容,包括参数和哈希值): var url = $location.url(

JS获取上一访问页面URL地址document.referrer实践2

一.JS获取前一个访问页面的URL地址document.referrer 要获取前一个访问页面的URL地址前后端语言都可以,例如PHP的是$_SERVER['HTTP_REFERER'],JavaScript的就是document.referrer. 我们平常开发,虽然和URL打交道也算比较频繁,但是,似乎很少使用document.referrer.我起初以为是兼容性不好,后来测试发现ie7都支持,那就奇怪了,为何document.referrer用的不多呢? 我想了一下,可能有下面几个原因:

angular js 使用$location问题整理

angular js 自带的$location方法十分强大,通过使用$location方法,我们可以获取到服务器的端口.杂乱连接中的path()部分(/所包含的部分): 例: // given url http://example.com/#/some/path?foo=bar&baz=xoxo var path = $location.path(); // => "/some/path" 但是在使用location之前,应该在文件的开头定义一下内容 /* * 定义ang

nodejs 通过 get获取数据修改redis数据

如下代码是没有报错的正确代码 我通过https获取到数据 想用redis set一个键值存储 现在我掉入了回调陷阱res.on 里面接收到的数据是data 里面如果放入 client.on('connect',functi ...这个修改函数就会报错. 'use strict'; var redis = require('redis'), RDS_PORT = 6379, //端口号 RDS_HOST = '127.0.0.1', //服务器IP //RDS_PWD = 'porschev',

js获取、修改CSS样式

CSS样式分为三种,行内样式.内部样式.外部样式. 一.element.style.stylename 创建.获取.修改       行内样式   console.log(document.getElementById("testcss0").style.backgroundColor);//"" document.getElementById("testcss0").style.backgroundColor = "black&quo

python文件夹遍历,文件操作,获取文件修改创建时间

在Python中,文件操作主要来自os模块,主要方法如下: os.listdir(dirname):列出dirname下的目录和文件os.getcwd():获得当前工作目录os.curdir:返回当前目录('.')os.chdir(dirname):改变工作目录到dirname os.path.isdir(name):判断name是不是一个目录,name不是目录就返回falseos.path.isfile(name):判断name是不是一个文件,不存在name也返回falseos.path.ex

angular js 多处获取ajax数据的方法

angular js 多处获取ajax数据的方法 var app=angular.module("cart",[]);app.service("getData",function ($http) { return{ ajax:function () { return $http.get("product.json"); } }}); app.controller("listCtrl",function ($scope,getD

JAVA之旅(十七)——StringBuffer的概述,存储,删除,获取,修改,反转,将缓存区的数据存储到数组中,StringBuilder

JAVA之旅(十七)--StringBuffer的概述,存储,删除,获取,修改,反转,将缓存区的数据存储到数组中,StringBuilder 讲完String,我们来聊聊他的小兄弟 一.StringBuffer概述 关于StringBuffer这个对象,Buffer是什么意思?缓冲区的意思,String一旦初始化时不可以被改变的,而StringBuffer是可以的,这就是区别,特点: StringBuffer是一个容器 可以字节操作多个数据类型 最终会通过toString方法变成字符串 存储 S