通过Angularjs从web api获取数据
通过Angularjs从web api获取数据
尊敬的专家们:
我正在尝试使用Angularjs从Web API获取数据,但是出现了错误。我已经通过Google Chrome测试了API,它能正确返回JSON数据。
第一个应用程序:
var contractT = angular.module("ContractT",[]);
第二个Angular服务:
contractT.service("crudService", function ($http) { this.getContracts = function() { return $http.get("/ContractTypesAPI/api/ContractTypes/getContracts"); } });
第三个控制器:
contractT.controller('crudController', function ($scope, crudService) { loadrecords(); function loadrecords() { var promiseGet = crudService.getContracts(); //该服务的方法调用 promiseGet.then(function (pl) { $scope.Contracts = pl.data; }); } });
第四个HTML:
Code | Latin Description | Local Description |
{{c.Staff_Type_Code}} | {{c.L_Desc}} | {{c.A_Desc}} |
错误信息为:
重复项不允许在重复器中。请使用“track by”表达式指定唯一键。重复器:c in Contracts,重复键:string:f,重复值:f
JSON数据:
"[{\"Staff_Type_Code\":1,\"L_Desc\":\"CONTINUOUS CONTRACT AND INSURED\",\"A_Desc\":\"دائـــم ومـــؤمن عليـــه\"},{\"Staff_Type_Code\":12,\"L_Desc\":\"CONTRACTING 36 HOURES\",\"A_Desc\":\"متعــــاقد 36 ساعة\"},{\"Staff_Type_Code\":13,\"L_Desc\":\"CONTRACTING 30 HOURES\",\"A_Desc\":\"متعــــاقد 30 ساعة\"},{\"Staff_Type_Code\":5,\"L_Desc\":\"ASSIGNED\",\"A_Desc\":\"إنتـــداب\"},{\"Staff_Type_Code\":14,\"L_Desc\":\"متعاقد 48ساعه\",\"A_Desc\":\"متعاقد 48ساعه\"},{\"Staff_Type_Code\":15,\"L_Desc\":\"متعاقد نصف الوقت\",\"A_Desc\":\"متعاقد نصف الوقت\"},{\"Staff_Type_Code\":16,\"L_Desc\":\"الطبيب المقيم\",\"A_Desc\":\"الطبيب المقيم\"},{\"Staff_Type_Code\":17,\"L_Desc\":\"دائم و مؤمن عليه / جامعة القاهرة\",\"A_Desc\":\"CONTINUOS CONTRACT AND INSURED - CAIRO UNV.\"},{\"Staff_Type_Code\":18,\"L_Desc\":\"CONTINUOUS CONTRACT AND INSURED WITHOUT INTENSIVE\",\"A_Desc\":\"دائم ومؤمن عليه بدون حافز\"},{\"Staff_Type_Code\":19,\"L_Desc\":\"عقود / داخلى\",\"A_Desc\":\"عقود / داخلى\"},{\"Staff_Type_Code\":20,\"L_Desc\":\"عقود /جهاز مركزى\",\"A_Desc\":\"عقود / جهاز مركزى\"}]"
该网站上的答案对我没有帮助。
该API正在从SQL数据库获取数据。
希望能得到帮助,提前感谢。
问题的原因是通过AngularJS从Web API获取数据时,返回的表格中存在重复的数据。解决方法是使用track by $index来跟踪ng-repeat指令中的每个元素的索引。
具体解决方法如下所示:
{{c.Staff_Type_Code}} {{c.L_Desc}} {{c.A_Desc}}
通过在ng-repeat指令中添加track by $index,可以确保每个元素都有一个唯一的标识符,从而避免重复数据的问题。
然而,根据对话内容来看,使用track by $index并没有解决问题,而是导致了返回的HTML页面中出现了空的和微小的表格单元格。但是对话中没有提供更多的细节,无法确定具体原因。
对于这个问题,提问者需要提供更多的信息和细节,以便其他人能够给出更准确的解决方案。