Javascript 在AngularJS中获取url的一部分

Javascript 在AngularJS中获取url的一部分,javascript,angularjs,Javascript,Angularjs,URL可能是 person/show/31586 或 有可能以角度的方式获取ID吗?路由不是由angular管理的。上面的url加载一个页面,页面上的一些内容由angular管理。该$location服务从浏览器地址栏解析url,并使该url可用于您的应用程序。因为您使用的是常规URL路径和搜索段,所以必须使用$locationProvider将html5Mode设置为true 默认情况下,$locationProvider使用hashbang,因此如果未将html5Mode设置为true,则

URL可能是

person/show/31586


有可能以角度的方式获取ID吗?路由不是由angular管理的。上面的url加载一个页面,页面上的一些内容由angular管理。

$location
服务从浏览器地址栏解析url,并使该url可用于您的应用程序。因为您使用的是常规URL路径和搜索段,所以必须使用
$locationProvider
html5Mode
设置为true

默认情况下,
$locationProvider
使用hashbang,因此如果未将
html5Mode
设置为true,则在尝试获取URL路径时将得到一个空字符串

设置
html5mode
后,可以使用
$location
服务获取URL路径,并编写自己的规则来处理路径

例如,假设您的完整URL如下所示:
http://example.com/person/show/321

然后在
main.js
中,您可能有:

angular.module("MyAPP",[],function($locationProvider){
    $locationProvider.html5Mode(true);
});

function MainController($location){
    var pId = $location.path().split("/")[3]||"Unknown";    //path will be /person/show/321/, and array looks like: ["","person","show","321",""]
    console.log(pId);
}
<!DOCTYPE html>
<html lang="en" ng-app="MyAPP">
    <head>
        <meta charset="utf-8">
        <title>Angular test</title>
    </head>
    <body ng-controller="MainController">
        <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js"></script>
        <script src="js/main.js"></script>
    </body>
</html>
index.html
中,您可能有:

angular.module("MyAPP",[],function($locationProvider){
    $locationProvider.html5Mode(true);
});

function MainController($location){
    var pId = $location.path().split("/")[3]||"Unknown";    //path will be /person/show/321/, and array looks like: ["","person","show","321",""]
    console.log(pId);
}
<!DOCTYPE html>
<html lang="en" ng-app="MyAPP">
    <head>
        <meta charset="utf-8">
        <title>Angular test</title>
    </head>
    <body ng-controller="MainController">
        <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js"></script>
        <script src="js/main.js"></script>
    </body>
</html>

角度测试

希望这对你有帮助。

如果你想得到最后一根绳子,你可以这样做

function MainController($location){
   var pId = $location.path().split(/[\s/]+/).pop();
     console.log(pId);         //321
}

以防其他人登陆此处,寻求与在Angular中检索url相关的帮助。有时,可能需要访问
absUrl

console.log($location.absUrl());

在这个场景中,使用$location依赖项注入的唯一优势是什么?(似乎NG应该提供一些方便的API…)