Angular - 从Controller中的URL路径返回ID

时间:2014-02-27 21:43:38

标签: angularjs url

我正在构建一个相当简单的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

2 个答案:

答案 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;
}]);