angularjs-$location
<p class="p0">$location服务分析浏览器地址栏中的URL(基于window.location),让我们可以在应用中较为方便地使用URL里面的内容。在地址栏中更改URL,会响应到$location服务中,而在$location中修改URL,也会响应到地址栏中。 <p class="p0"> $location服务:
<span style="color: #008000">//<span style="color: #008000">getter/setter,返回当前url路径,(当前url#后面的内容,包括参数和哈希值)。
<span style="color: #000000">$location.url([url],[replace]); <span style="color: #008000">//<span style="color: #008000">只能getter,返回当前url的协议(比如http,https) <span style="color: #008000">//<span style="color: #008000">只能getter,返回当前url的主机名。 <span style="color: #008000">//<span style="color: #008000">只能getter,返回当前url的端口号。 <span style="color: #008000">//<span style="color: #008000">getter/setter,返回当前url的子路径(也就是当前url#后面的内容,不包括参数) <span style="color: #008000">//<span style="color: #008000">getter/setter,返回当前url的参数的序列化json对象 <span style="color: #008000">//<span style="color: #008000">getter/setter,返回当前url的哈希值。 <span style="color: #008000">//<span style="color: #008000">返回当前url的历史状态对象(不包括任何参数)。 <span style="color: #008000">//<span style="color: #008000">如果被调用,当前$digest过程中所有$location的变化将取代当前的历史记录,而不是增加新的历史记录。 <div class="cnblogs_code">
所有setter方法都返回同一个$location对象,以实现链式语法。例如,在一句里面修改多个属性,链式setter方法类似: $location.path(‘/newValue’).search({key:value});
replace方法 replace方法,可以用作告诉$location服务,在下一次与浏览器同步时,使用某个路径代替最新的历史记录,而不是创建一个新的历史记录。当我们想实现重定向(redirection)而又不想使后退按钮(后退按钮回重新触发重定向)失效时,replace方法就很有用了。想改变当前URL而不创建新的历史记录的话,我们可以这样做: $location.path(‘/someNewPath’).replace();
注意,setter方法不会马上更新window.location。相反,$location服务会知道scope生命周期以及合并多个$location变化为一个,并在scope的$digest阶段一并提交到window.location对象中。正因为$location多个状态的变化会合并为一个变化,到浏览器中,只调用一次replace()方法,让整个commit只有一个replace(),这样不会使浏览器创建额外的历史记录。一旦浏览器更新了,$location服务会通过replace()方法重置标志位,将来的变化将会创建一个新的历史记录,除非replace()被再次调用。
url =
$location.url();
$location.protocol();
$location.host();
$location.port();
$location.path();
$location.search();
$location.search(,
$location.hash();
$scope.$on(
<p class="p0">5. hashbang 和 HTML5 Modes <p class="p0">$location有两种配置模式,可以控制浏览器地址栏中URL格式:Hashbang mode(默认),与使用HTML5HistoryAPI的HTML5mode。在两种模式下,应用都使用相同的API,$location服务会与正确的URL片段、浏览器API一起协作,帮助我们进行浏览器URL变更以及历史管理。 <p class="p0"> <img src="https://www.52php.cn/res/2019/01-14/23/72bc2e4fa15748bc2b42ac667484186c.jpg" alt=""> <p class="p0">转自:<a href="http://www.cnblogs.com/jcomet/p/4350341.html">http://www.cnblogs.com/jcomet/p/4350341.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |