搜尋

首頁  >  問答  >  主體

Angular.js - Angular TypeError:無法讀取未定義的屬性「id」?

demo
功能描述:
在一個頁面中實現學生資訊瀏覽的功能。首先,以列表的方式顯示全部學生的姓名;然後,當在列表單擊某個學生姓名時,進入改學生的詳細資料頁。顯示該學生的全部資料。
5-7.html

<!DOCTYPE html>
<html lang="en" ng-app="a5_7">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="../bower_components/angular/angular.min.js"></script>
    <script type="text/javascript" src="../bower_components/angular-route/angular-route.min.js"></script>
    <style>
        body{
            font-size:13px;
        }
        .show{
            background-color:#cccccc;
            padding:8px;
            width:260px;
            margin:10px 0;
        }
    </style>
</head>
<body>
 <h1>浏览学生信息的主页</h1>
<p ng-view></p>
</body>
<script type="text/javascript">
var a5_7 = angular.module('a5_7',['ngRoute']);
    a5_7.controller('c5_7_1',['$scope', function($scope){
        $scope.students = students;

    }]);
    a5_7.controller('c5_7_2',['$scope', function($scope,$routeParams){
        for(var i=0; i<students.length; i++){
//            console.log(students.student[i]);
            if(students[i].stuId == $routeParams.id){

                $scope.student = students[i];
                break;
            }
        }
    }]);
    a5_7.config(['$routeProvider', function($routeProvider){
        $routeProvider.when('/',{
            controller:'c5_7_1',
            templateUrl:'5-7-1.html'
        }).when('/view/:id',{
            controller:'c5_7_2',
            templateUrl:'5-7-2.html',
            publicAccess:true
        }).otherwise({
            redirectTo:'/'
        });
    }]);

    var students = [
        { stuId:1000, name:'张明明',sex:'女',score:60},
        { stuId:1001, name:'李清思',sex:'女',score:80},
        { stuId:1002, name:'刘小华',sex:'男',score:90},
        { stuId:1003, name:'陈总总',sex:'男',score:70}
    ]
</script>
</html>

5-7-1.html

<p ng-repeat="stu in students" class="show">
    <a href="#view/:id">{{stu.name}}</a>
</p>

5-7-2.html

<p class="show">
    <p>学号:{{student.stuId}}</p>
    <p>姓名:{{student.name}}</p>
    <p>性别:{{student.sex}}</p>
    <p>分数:{{student.score}}</p>
</p>

操作步驟:
1.先開啟5-7.html
2.點選學生姓名

3.控制台報錯:

這是什麼原因導致的,會是這句話的問題嗎? href="#view/:id"

ringa_leeringa_lee2744 天前938

全部回覆(1)我來回復

  • 黄舟

    黄舟2017-05-15 17:07:25

     a5_7.controller('c5_7_2',['$scope', function($scope,$routeParams){//没有注入$routeParams

    請改為

     a5_7.controller('c5_7_2',['$scope','$routeParams', function($scope,$routeParams){

    回覆
    0
  • 取消回覆