【问题标题】:How to get the last part of url AngularJS如何获取 url AngularJS 的最后一部分
【发布时间】:2015-07-22 07:02:45
【问题描述】:

如何在 AngularJS 中构建函数来检查 url 的最后一部分?

我的例子:

#/menu1/123/edit

#/menu2/444/create/new

#/menu3/sumbenu1/333/create/new

#/menu4/submenu2/subsubmenu1/subsubsubmenu1/543/edit

事情是这样的:

123 444 333 543 是在 Angular 外部生成的 ID

我需要检查网址的最后部分:/edit/create/new

url的长度会有所不同(url中/的数量)。

我在 Angular 中有一个控制器来获取 url:

.controller('urlCtrl', ['$scope', '$rootScope', '$location', function ($scope, $rootScope, $location) {

    $rootScope.location = $location;
    $scope.hashPath = "#" + $rootScope.location.path().toString();
}]);

我将 # 字符添加到 url,因为稍后我会将它与我的 JSON 进行比较。

我试过这个solution,但它没有用(我还检查了这个主题的另一个解决方案,但没有任何反应)。

有什么想法吗?

编辑:

或者如何只检查网址中的editcreate

我的解决办法是:

var path = $location.path();
var multisearch = path.search(/create|edit|new/);
console.log("multisearch: " + multisearch);

【问题讨论】:

    标签: javascript angularjs url


    【解决方案1】:

    这应该会给你想要的结果:

    window.alert(window.location.href.substr(window.location.href.lastIndexOf('/') + 1));
    

    您可以使用以下命令获取当前 URL:window.location.href 那么你只需要获取最后一个'/'之后的部分

    【讨论】:

      【解决方案2】:

      更有效的方法:

      location.pathname.split('/').slice(-1)[0]
      

      如果是http://example.com/firstdir/seconddir/thirddir?queryparams#hash;它会给你thirddir

      • pathname 将只保留域名后面的部分 url 和 在查询参数之前
      • split 会将 url 分解为由 / 分隔的数组
      • slice 将为您提供仅包含最后一项的数组
      • [0] 你会把最后一个项目作为一个字符串吗(与 数组)

      【讨论】:

        猜你喜欢
        • 2013-06-14
        • 2011-11-15
        • 2013-11-01
        • 2019-04-30
        • 1970-01-01
        • 1970-01-01
        • 2019-03-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多