AngularJS - 如何从非单页应用程序中的干净URL读取URL参数

时间:2014-10-16 09:30:01

标签: javascript angularjs url routes

我目前正在开展一个大型重构项目,我的团队正在用更现代的方法替换应用程序中的旧功能。

我们正朝着单页面应用程序的方向发展,但在我们实现之前,我们正在用AngularJS功能替换单个独立的网页。

我们的后端是ASP.NET MVC应用程序,我被迫使用我现有的任何东西;因此URL需要保持给定的格式:

http://example.com/controller/action/id

如何在不使用AngularJS单页应用主要使用的所谓散列风格的URL的情况下,在AngularJS控制器中读取URL部分?

例如; 我转到/user/edit/1并需要获得' 1'以某种方式在我的AngularJS控制器中。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

$ location服务可以帮助您。根据文档https://code.angularjs.org/1.2.15/docs/guide/ $ location

  

$ location service为只读部分提供getter方法   URL(absUrl,协议,主机,端口)和getter / setter方法   网址,路径,搜索,哈希:

答案 1 :(得分:0)

像这样定义您的路线

angular.module('app', [])
.config(['$routeProvider', function($routeProvider) {

  $routeProvider.when('/user/edit/:id', {
    templateUrl: '/edit.html',
    controller: 'editCtrl'
  })
}]);

//在控制器内执行此操作

angular.module('app').controller('editCtrl', ['$scope', '$routeParams', function($scope, $routeParams){
   // $routeParams is the key here
   // you can access it by doing

   console.log($routeParams.id)
}])