2017-09-01 99 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