[英]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 中的edit
或create
?
我的解決辦法是:
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.