如何在AngularJS的路由url中传递参数

How to pass Parameters in Route Urls in AngularJS

本文关键字:参数 url 路由 AngularJS      更新时间:2023-09-26

如何在angularJs中传递参数给分部视图?我是angular的新手,我遵循这些教程来学习。这个教程很好地解释了基本的,但是没有关于我们如何发送参数到局部视图。例如/addStudent?id=45

 $routeProvider.
                   when('/addStudent', {
                      templateUrl: 'addStudent.htm',
                      controller: 'AddStudentController'
                   }).
                   when('/viewStudents', {
                      templateUrl: 'viewStudents.htm',
                      controller: 'ViewStudentsController'
                   })

您可以在地址定义中定义参数,并通过$stateParams控制器参数访问

  when(url: '/new/:portfolioId',
    templateUrl: 'new.html',
    controller: function($scope, $stateParams) {
      $scope.portfolioId = $stateParams.portfolioId;
    }
  )

看这里:http://benfoster.io/blog/ui-router-optional-parameters

更"Angular"的方式是使用$routeParams服务。

查看文档

要在路由中传递参数,您可以在url中定义参数为:parameter

:

$routeProvider.
               when('/addStudent', {
                  templateUrl: 'addStudent.htm',
                  controller: 'AddStudentController'
               }).
               when('/viewStudents', {
                  templateUrl: 'viewStudents.htm',
                  controller: 'ViewStudentsController'
               }).
               when('/students/:id', {
                  templateUrl: 'studentsDetail.htm',
                  controller: 'studentsDetailController'
               })

这里url students/:id有id作为参数。

这里是angular doc

$routeProvider.when('/addStudent/:id', {
                 templateUrl: 'addStudent.htm',
                 controller: 'AddStudentController'
                   })
$routeProvider.when('/viewStudents/:id', {
                 templateUrl: 'viewStudents.htm',
                 controller: 'ViewStudentsController'
                   })