如何在AngularJS中构建函数来chceck 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
。
网址的长度会有所不同(网址内/
的数量。)
我在Angular中有一个控制器来获取网址:
.controller('urlCtrl', ['$scope', '$rootScope', '$location', function ($scope, $rootScope, $location) {
$rootScope.location = $location;
$scope.hashPath = "#" + $rootScope.location.path().toString();
}]);
我将#
字符添加到网址中,因为稍后我会将其与我的JSON进行比较。
我试过这个solution但它没有用(我还检查了这个主题的另一个解决方案,没有发生任何事情)。
有什么想法吗?
修改
或如何仅检查网址中的edit
或create
?
我的解决方案是:
var path = $location.path();
var multisearch = path.search(/create|edit|new/);
console.log("multisearch: " + multisearch);
答案 0 :(得分:9)
这应该会给你想要的结果:
window.alert(window.location.href.substr(window.location.href.lastIndexOf('/') + 1));
您可以使用:window.location.href获取当前网址 然后你只需要在最后一个'/'
之后得到这个部分答案 1 :(得分:1)
更有效的方法:
location.pathname.split('/').slice(-1)[0]
对于http://example.com/firstdir/seconddir/thirddir?queryparams#hash
;它会给你thirddir
pathname
将仅保留域名后面的部分网址,
查询前参数split
会将网址爆炸成由/
分隔的数组slice
将为您提供仅包含最后一项的数组[0]
将您最后一个项目作为字符串(与
数组)