我正在构建一个相当简单的AngularJS应用程序,但为了简单起见,我宁愿不使用路由(如果可能的话),只是从服务器返回单个Angular页面。从本质上讲,仅将Angular用于'小部件的布局和功能。而不是在页面之间移动。
话虽如此,我花了好几个小时试图从当前网址中获取ID,所以:
/Tickets/:id
我想在控制器中执行的操作是从URL获取ID,然后将其传递给Factory。 (下面是使用伪代码的示例)
app.controller('ticketController', ['$scope', '$route',
function ($scope, $route, $location) {
//Get ID out of current URL
var currentId = someFunction().id;
factory.callFactory(ID);
}]);
我也尝试创建路线,但返回的对象似乎并没有提供获取ID的方法。
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider
.when('/tickets/:id',
{
templateUrl: '/partials/edit',
controller: 'ticketController'
}
);
}]);
不确定我做错了什么。
This doesn't seem to work for me
This also doesn't seem to work, but I may be doing something wrong
答案 0 :(得分:42)
请尝试$routeParams
:
app.controller('ticketController', ['$scope', '$routeParams',
function ($scope, $routeParams) {
//Get ID out of current URL
var currentId = $routeParams.id;
}]);
答案 1 :(得分:18)
如果您使用的是ui-router
,请尝试$stateParams
:
app.controller('ticketController', ['$scope', '$stateParams',
function ($scope, $stateParams) {
//Get ID out of current URL
var currentId = $stateParams.id;
}]);