2017-09-01 168 views
0

亲爱的专家:我试图从Angularjs的web api获取数据但是我收到了一个错误。我已经测试通过谷歌浏览器的API,并返回JSON正确通过Angularjs从web api获取数据

的第一APP:

var contractT = angular.module("ContractT",[]); 

第二角度服务:

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(); //The MEthod Call from service 

     promiseGet.then(function (pl) { $scope.Contracts = pl.data }) 


    } 



}) 

四HTML :

<table border="1"> 
      <thead> 
       <tr>Code</tr> 
       <tr>Latin Description</tr> 
       <tr>Local Description</tr> 
      </thead>`enter code here` 
      <tbody> 
       <tr ng-repeat="c in Contracts"> 
        <td>{{c.Staff_Type_Code}}</td> 
        <td>{{c.L_Desc}}</td> 
        <td>{{c.A_Desc}}</td> 
       </tr> 
      </tbody> 
     </table> 

错误是: 中继器中不允许重复。使用'track by'表达式来指定唯一键。中继器:C合约中,重复键:字符串: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数据库中获取数据 任何帮助,在此先感谢

回答

0

利用轨迹由$指数

<tr ng-repeat="c in Contracts track by $index"> 
    <td>{{c.Staff_Type_Code}}</td> 
    <td>{{c.L_Desc}}</td> 
    <td>{{c.A_Desc}}</td> 
</tr> 
+0

Duplicates应该被标记,没有回答... –

+0

感谢您的回复,但它返回HTML页面中的空白和细小的表格单元格 – Hassan

+0

@Hassan你是什么意思?编辑您的问题 – Sajeetharan

0

ng-repeat通过唯一键循环。您的联系人列表没有唯一的密钥,这就是您遇到此错误的原因。如果您的联系人列表中没有任何唯一键,则可以在“track by”索引选项中使用角度构建。

+0

感谢您的回复,但它使用$ index>> – Hassan

+0

任何帮助使用 Hassan

+0

任何帮助,因为我没有解决问题 – Hassan