无法使用AngularJS将Json数据与表头绑定

无法使用AngularJS将Json数据与表头绑定,angularjs,json,angularjs-ng-repeat,Angularjs,Json,Angularjs Ng Repeat,我从api获取这种格式的数据,但当我尝试使用angularjs将其绑定到表时,它会创建空空间而不是值。我也从一些Api得到了不止一个表,请解释一下谁也应该在不同的表中绑定不同的数据表。谢谢 {"Table": [{ "SchoolId":1, "schoolname":"Microsoft", "SCHOOLCODE":"29911583", "WEBSITE":"JLR", "USEREMAIL":"faucibus@aliquamiacul

我从api获取这种格式的数据,但当我尝试使用angularjs将其绑定到表时,它会创建空空间而不是值。我也从一些Api得到了不止一个表,请解释一下谁也应该在不同的表中绑定不同的数据表。谢谢

{"Table": 
  [{ 
    "SchoolId":1, 
    "schoolname":"Microsoft",
    "SCHOOLCODE":"29911583", 
    "WEBSITE":"JLR",
    "USEREMAIL":"faucibus@aliquamiaculislacus.org", 
    "PHONE":"841-9331",
    "ADDRESS1":"682-5760 Felis Street", 
    "ISACTIVE":0, 
    "PLANTYPE":3 
  }] 
}
角度控制器

SMSApp.factory('GetStudentService', function ($http) {
    studobj = {};

    studobj.getAll = function () {
        var stud=[];

        stud = $http({ method: 'Get', url: 'http://localhost:58545/api/Student?Studentid=1' }).
            then(function (response) {
                return response.data;
            });
        return stud;
    };
    return studobj;
});

SMSApp.controller('studentController', function ($scope, GetStudentService) {
    $scope.msg = "Welcome from Controller";

    GetStudentService.getAll().then(function (result) {
        $scope.school = result;
        console.log(result);
    });

});
HTML代码

 <tbody ng-controller="studentController">
     <tr ng-repeat="schools in school track by $index">
         <td>{{schools.SchoolId}}</td>
         <td>{{schools.schoolname}}</td>
         <td>{{schools.SCHOOLCODE}}</td>
         <td>{{schools.WEBSITE}}</td>
         <td>{{schools.USEREMAIL}}</td>
      </tr>
 </tbody>

{{schools.SchoolId}
{{学校名称}
{{学校.学校代码}
{{学校.网站}
{{schools.USEREMAIL}
我得到的


命名数据
学校
令人困惑。改为:

GetStudentService.getAll().then(function (data) {
    $scope.tableObj = data;
    console.log(data);
});

{{school.SchoolId}
{{school.schoolname}
{{学校.学校代码}
{{school.WEBSITE}
{{school.USEREMAIL}
从文档中:

最佳实践:如果您正在处理具有唯一标识符属性的对象,则应按此标识符而不是对象实例进行跟踪,例如,items中的
项按项跟踪.id
。如果以后重新加载数据,即使集合中的JavaScript对象已替换为新对象,ngRepeat也不必为已呈现的项重新构建DOM元素。对于大型集合,这将显著提高渲染性能


更改角度控制器

SMSApp.controller('studentController', function ($scope, GetStudentService) {
    $scope.msg = "Welcome from Controller";

    GetStudentService.getAll().then(function (result) {

   /********************* Changed Here ********************/

        $scope.school = JSON.parse(result._body); // Or only JSON.parse(result)
        $scope.school = $scope.school.table; 
    });

});
和您的HTML代码:

 <tbody ng-controller="studentController">
     <tr ng-repeat="schools in school track by $index">
         <td>{{schools.SchoolId}}</td>
         <td>{{schools.schoolname}}</td>
         <td>{{schools.SCHOOLCODE}}</td>
         <td>{{schools.WEBSITE}}</td>
         <td>{{schools.USEREMAIL}}</td>
      </tr>
 </tbody>

{{schools.SchoolId}
{{学校名称}
{{学校.学校代码}
{{学校.网站}
{{schools.USEREMAIL}

只需将您的结果替换为控制器中的result.Table,因为如果您正确地看到响应,它就位于名为数组的“Table”中。试试这个你应该可以看到你的记录

SMSApp.controller('studentController',函数($scope,GetStudentService){
$scope.msg=“欢迎来自控制器”;
GetStudentService.getAll().then(函数(结果){
$scope.school=result.Table;
控制台日志(结果);
});

});你能帮我解决这个{“表格”:[{“学校ID”:1,“学校名称”:“Microsoft”,“学校代码”:“29911583”,“网站”:“JLR”,“用户电子邮件”:faucibus@aliquamiaculislacus.org“,”电话“:”841-9331“,”地址1“:”682-5760 Felis Street“,”ISACTIVE“:0,“PLANTYPE”:3}]}答案与此中的数据一致。我看到的唯一问题是
ng controller
指令位于
元素上,这对于控制器来说是一个奇怪的地方。我已经对代码进行了精确的更改,它是日志控制台。但是,ng repeat仍然不会渲染值。此外,我已将ng controller移动到主分区。请建议在结果中添加“.Table”后,.value是未定义的。如果它的工作对您有帮助,那么您可以将其向上投票。:)
 <tbody ng-controller="studentController">
     <tr ng-repeat="schools in school track by $index">
         <td>{{schools.SchoolId}}</td>
         <td>{{schools.schoolname}}</td>
         <td>{{schools.SCHOOLCODE}}</td>
         <td>{{schools.WEBSITE}}</td>
         <td>{{schools.USEREMAIL}}</td>
      </tr>
 </tbody>