首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想通过在angularjs中通过路由传递学生身份来显示学生的详细信息。但我做不到

我想通过在angularjs中通过路由传递学生身份来显示学生的详细信息。但我做不到
EN

Stack Overflow用户
提问于 2019-04-24 05:39:37
回答 2查看 433关注 0票数 0

我对角JS很陌生,并且尝试通过使用路由传递学生id来查看学生的详细信息。

我编写了一些代码,但没有具体说明应该在哪里添加学生的详细信息,以及如何传递学生id。

代码语言:javascript
复制
this is the code for index.html

代码语言:javascript
复制
<div>
    <div>
        <div>
            <ul>
                <li><a href="#add"> Add Student </a></li>
                <li><a href="#show"> Show Student </a></li>
            </ul>
        </div>
        <div >
            <div ng-view></div>
        </div>
    </div>
</div>   

代码语言:javascript
复制
this is the code for app.js

var myApp = angular.module('stuApp',[]);

MyApp.config(‘$routeProvider’,

代码语言:javascript
复制
function ($routeProvider) {
代码语言:javascript
复制
    $routeProvider.
代码语言:javascript
复制
        when('/add', {
代码语言:javascript
复制
            templateUrl: 'add_student.html',
代码语言:javascript
复制
            controller: 'addCtrl'
代码语言:javascript
复制
        }).
代码语言:javascript
复制
        when('/show', {
代码语言:javascript
复制
            templateUrl: 'show_student.html',
代码语言:javascript
复制
            controller: 'showCtrl'
代码语言:javascript
复制
        }).
代码语言:javascript
复制
        otherwise({
代码语言:javascript
复制
            redirectTo: '/add'
代码语言:javascript
复制
        });
代码语言:javascript
复制
}]);

myApp.controller('addCtrl',函数($scope) {

代码语言:javascript
复制
$scope.message = 'This is Add new Student screen';

});

myApp.controller('showCtrl',函数($scope) {

代码语言:javascript
复制
$scope.message = 'This is Show Student screen';

})

代码语言:javascript
复制
I want to add student details in via form but dont dont know how to add those values in controller 

```javascript

add_student.html

代码语言:javascript
复制
<script type="text/ng-template" id="add_student.html">
<h2>Add New Student</h2>

{{ message }}
</script>
```

show_student.html

代码语言:javascript
复制
<script type="text/ng-template" id="show_student.html">
<h2>Show Order</h2>

{{ message }}
</script>

I want the output as to pass object in controller display the students name and by clicking on the name student details should be displayed.
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-24 10:20:50

嗨,Akansha通过url中的路由传递参数,您需要在这样的地方更改您的$routeProvider:

代码语言:javascript
复制
when('/add/:StudentId', {
            templateUrl: 'add_student.html',
            controller: 'addCtrl'
        })

这意味着,如果您的url是/add/1837,则参数StudentId的值为1837。

要在控制器中获取StudenId的值,可以使用$routeParams。

因此,例如,您的控制器可以如下所示:

代码语言:javascript
复制
 myApp.controller('showCtrl', function ($scope, $routeParams) {
    $scope.message = 'This is Show Student screen';
    var studentId = $routeParams.StudentId;
 })

您可以从以下链接网址-路由- GitHub获得更多信息

此外,还有其他访问url参数的方法,它们在下面的问题在控制器中访问Angularjs中的URL参数如何使用AngularJS获取url参数中进行了描述

票数 0
EN

Stack Overflow用户

发布于 2019-04-24 10:21:24

在app.js路由配置代码中,添加路由param ID,如下所示

代码语言:javascript
复制
       when('/show/:id', {
            templateUrl: 'show_student.html',
            controller: 'showCtrl'
        })

在您的index.html中,通过a标记传递ID

代码语言:javascript
复制
         <ul>
            <li><a href="#add"> Add Student </a></li>
            <li><a href="#show/{{id}}"> Show Student </a></li>
        </ul>

在显示控制器中,先注入$routeParams

代码语言:javascript
复制
myApp.controller('showCtrl', function ($scope,$routeParams) {
  $scope.studentID = $routeParams.id; //passsed ID
 $scope.message = 'This is Show Student screen';
})
//you can use student ID to  filter your data in showStudent.html
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55823065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档