无法使用AngularJS将Json数据与表头绑定
我从api获取这种格式的数据,但当我尝试使用angularjs将其绑定到表时,它会创建空空间而不是值。我也从一些Api得到了不止一个表,请解释一下谁也应该在不同的表中绑定不同的数据表。谢谢无法使用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
{"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>