簡體   English   中英

如何獲取 url AngularJS 的最后一部分

[英]How to get the last part of url AngularJS

如何在 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

我需要檢查我的 url 的最后部分: /edit/create/new

url的長度會有所不同(url的數量/內部)。

我在 Angular 中有一個控制器來獲取網址:

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

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

我將#字符添加到 url 中,因為稍后我將它與我的 JSON 進行比較。

我嘗試了這個解決方案,但它沒有用(我還檢查了這個主題的另一個解決方案,但什么也沒發生)。

有任何想法嗎?

編輯:

或者如何只檢查 url 中的editcreate

我的解決辦法是:

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

這應該會給你想要的結果:

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

您可以使用以下方法獲取當前 URL: window.location.href 然后您只需要獲取最后一個 '/' 之后的部分

更有效的方法:

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

http://example.com/firstdir/seconddir/thirddir?queryparams#hash情況下; 它會給你thirddir

  • pathname名將只保留域名之后和查詢參數之前的 url 部分
  • split會將 url 分解為由/分隔的數組
  • slice會給你只包含最后一項的數組
  • [0]您將最后一個項目作為字符串(與數組的項目相反)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM