『AngularJS』$location 服务介绍(1)
2016-03-03 20:51
811 查看
简介
$location服务解析在浏览器地址栏中的URL(基于window.location)并且让URL在你的应用中可用。改变在地址栏中的URL会作用到$location服务,同样的,改变$location服务也会改变浏览器的地址栏。(可以使用$location进行重定向等操作)
$location服务:
暴露浏览器地址栏中的URL,让你可以:监察URL。
改变URL。
与浏览器同步URL,当:
改变地址栏。
单击『前进』『后退』或一个历史记录中的链接。
打开一个链接。
将URL对象表示为一个方法集。 (protocol, host, port, path, search, hash)
服务依赖:
$browser$sniffer
$rootElement
内置方法:
absUrl( ):只读;根据在RFC 3986中指定的规则,返回url,带有所有的片段。hash( ):读、写;当带有参数时,返回哈希碎片;当在带有参数的情况下,改变哈希碎片时,返回$location。
host( ):只读;返回url中的主机路径。
path( ):读、写;当没有任何参数时,返回当前url的路径;当带有参数时,改变路径,并返回$location。(返回的路径永远会带有/)
port( ):只读;返回当前路径的端口号。
protocol( ):只读;返回当前url的协议。
replace( ):如果被调用,就会用改变后的URL直接替换浏览器中的历史记录,而不是在历史记录中新建一条信息,这样可以阻止『后退』。
search( ):读、写;当不带参数调用的时候,以对象形式返回当前url的搜索部分。
url( ):读、写;当不带参数时,返回url;当带有参数时,返回$location。
内置事件:
$locationChangeStart:在URL改变前发生。这种改变可以通过调用事件的preventDefault方法为阻止。查看ng.$rootScope.Scope#$on获得更多的细节。成功时触发$locationChangeSuccess事件。$locationChangeSuccess:当URL改变后发生。
使用
何时使用$location
任何你想要改变当前URL的时候,都可以使用$location。
$location不会做
当浏览器的URL改变时,不会重新加载整个页面。如果想要重新加载整个页面,需要使用$window.location.href。
样例
相关文章推荐
- angularjs用FormData上传文件
- angularjs表达式中不能直接调用外部的js函数
- AngularJS中的控制器和作用域
- angularjs 和 trim方法冲突
- #学习笔记#(51)angular自定义标签director
- 走进AngularJs(八) ng的路由机制
- Angularjs Ng_repeat中实现复选框选中并显示不同的样式
- 走进AngularJs(中) 服务机制1
- ng-include用法分析以及多标签页面的简单实现方式
- Angularjs轻松实现表格按指定列排序
- 【Angularjs文档翻译及实例】表单指令集(input)
- AngularJs学习记录
- angularjs(1)
- #学习笔记#(50)angular.bind(self,fn,args)
- Angularjs表达式与JavaScript表达式的区别
- bootstrap + angularjs + springmvc + mybatis框架之多个输入框(可为空)组合查询
- bootstrap + angularjs + springmvc + mybatis框架之加载log4j日志
- bootstrap + angularjs + springmvc + mybatis框架之图片上传和展示
- AngularJS 反模式
- AngularJS vs. jQuery,看看谁更胜一筹