我想获得查询字符串,这是实际路线的一部分,这是实际的网址:
http://localhost:13453/Vehicle/Profile/c2db202f-9bf0-4876-851c-29964484bf7a
我想得到Profile /
之后的最后一个值我如何在angularJS中实现这一点,然后我可以使用它来获取如下细节:
.controller('VehicleProfileController', ['$scope', '$http', '$location',
function ($scope, $http, $location) {
//get the id here which I'll pass to $http call
$http({
method: 'GET',
url: '/Vehicle/GetProfile'
}).
success(function (data) {
});
}])
答案 0 :(得分:1)
如果你只是需要一个简单的javascript解决方案,你可以使用类似下面的内容,而不必连接其他依赖项:
var loc = window.location.href;
var id = loc.slice(loc.lastIndexOf('/'), loc.length).split('/')[1];
在这里快速JSFiddle可以玩。
答案 1 :(得分:0)
您可以使用$stateProvider
:
angular.module('vehicles').config(['$stateProvider',
function($stateProvider) {
$stateProvider.
state('vehiclesId', {
url: '/Vehicle/Profile/:id',
templateUrl: 'modules/view.client.view.html'
});
}]);
比仅在控制器中使用:
angular.module('vehicles').controller('VehiclesController', ['$stateParams',
function($stateParams){
$stateParams.id
}]);
答案 2 :(得分:0)
正如@sma在评论中所说,我们需要知道你在使用什么路由器。
<强> UI-路由器强>
如果您使用的是ui-router
,并且如果您在州内定义了参数,则只需使用$stateParams
即可将其保存在您的控制器中:
app.controller('MyController', ['$stateParams', function ($stateParams) {
var id = $stateParams.myParamName; // the param defined in the state
}]);
<强> ngRoute 强>
如果您使用的是ngRoute
,则应以相同的方式使用$routeParams
:
app.controller('MyController', ['$routeParams',
function($routeParams) {
var id = $routeParams.myParamName; // the param defined in your route
}]);
修改强>
我假设你正在使用ngRoute
,所以首先检查你的路线定义,它应该在你的config
阶段,它应该是这样的:
.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/phones', {
templateUrl: 'partials/phone-list.html',
controller: 'PhoneListCtrl'
}).
when('/phones/:phoneId', {
templateUrl: 'partials/phone-detail.html',
controller: 'PhoneDetailCtrl'
}).
otherwise({
redirectTo: '/phones'
});
}]);
然后,在您的控制器中,您应该能够获得您的参数(在此示例中称为phoneId
),如上面的ngRoute
控制器示例(使用$routeProvider
)。< / p>
您可能应首先查看文档,特别是this part。