如何获得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中/
的个数)。
.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));
您可以使用:window.location.href获取当前URL然后你只需要得到最后一个'/'之后的部分
更有效率的方法:
location.pathname.split('/').slice(-1)[0]
在http://example.com/firstdir/seconddir/thirddir?queryparams#hash
;它会给你thirddir
-
pathname
将只保留域名和url后面的部分before查询参数 -
split
将把url扩展成数组,以/
分隔 -
slice
将给你一个只包含最后一项的数组 -
[0]
将最后一个项目作为字符串(与项目的项目形成对比)数组)
相关文章:
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- AngularJS:我可以跳过函数参数回调吗
- AngularJS UI路由器不能像ng路由器那样工作
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- 如何包含特定于每个视图angularjs的javascript文件
- AngularJS:ng之后,重复$scope值未按预期更新
- AngularJS-在JSON选择器中使用变量名
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- $window.ga在AngularJS事件中未定义
- AngularJS-使用'true'属性
- 打开一个模态并将其链接到AngularJS中的指令
- AngularJS如何更改模型的一部分
- AngularJS JavaScript 解析 JSON 的一部分
- AngularJS将控制器的一部分移动到服务
- 将URL的一部分传递给AngularJS中的自定义筛选器
- AngularJS:以粗体显示表达式的一部分
- 如何获得url的最后一部分AngularJS
- 在angularjs中用scope绑定ng-model的一部分
- AngularJS过滤器问题:仅比较字符串的一部分(子字符串)
- 如何使用AngularJS/Ionic作为主干/Cordova项目的一部分