加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs-$location

发布时间:2020-12-17 10:39:50 所属栏目:安全 来源:网络整理
导读:p class="p0"$location服务分析浏览器地址栏中的URL(基于window.location),让我们可以在应用中较为方便地使用URL里面的内容。在地址栏中更改URL,会响应到$location服务中,而在$location中修改URL,也会响应到地址栏中。 p class="p0" $location服务: s

<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: #000000">$location.protocol();

    <span style="color: #008000">//<span style="color: #008000">只能getter,返回当前url的主机名。
    <span style="color: #000000">$location.host();

    <span style="color: #008000">//<span style="color: #008000">只能getter,返回当前url的端口号。
    <span style="color: #000000">$location.port();

    <span style="color: #008000">//<span style="color: #008000">getter/setter,返回当前url的子路径(也就是当前url#后面的内容,不包括参数)
    <span style="color: #000000">$location.path([path]);

    <span style="color: #008000">//<span style="color: #008000">getter/setter,返回当前url的参数的序列化json对象
    <span style="color: #000000">$location.search(search,[paramValue]);

    <span style="color: #008000">//<span style="color: #008000">getter/setter,返回当前url的哈希值。
    <span style="color: #000000">$location.hash([hash]);

    <span style="color: #008000">//<span style="color: #008000">返回当前url的历史状态对象(不包括任何参数)。
    <span style="color: #000000">$location.state([state]);

    <span style="color: #008000">//<span style="color: #008000">如果被调用,当前$digest过程中所有$location的变化将取代当前的历史记录,而不是增加新的历史记录。
    $location.replace();

    <div class="cnblogs_code">

       
    </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt; change the path</span>
    $location.path(<span style="color: #800000"&gt;'</span><span style="color: #800000"&gt;/newValue</span><span style="color: #800000"&gt;'</span>)</pre>

    所有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"&gt;http://www.cnblogs.com/jcomet/p/4350341.html

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    • 推荐文章
        热点阅读