2017-12-06 1 views
0

내 프로젝트에서 anguraljs 1.6을 사용합니다.웹 서비스에서 반환 된 데이터가 테이블에 표시되지 않는 이유는 무엇입니까?

웹 서비스에서 데이터를 읽고 테이블에 반환 된 데이터를 표시해야합니다.

여기 내 HTTP 아약스 호출입니다 :

$http.get("../../Services/ReportDepartmentService.asmx/GetRecords").then(function (response) { 
      $scope.report = response.data; 
    }); 

그리고 여기에 데이터의 예는 웹 서비스에서 반환됩니다

"<?xml version="1.0" encoding="utf-8"?> 
    <ArrayOfDepartmentReport xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://localhost/services"> 
     <DepartmentReport> 
     <IncidentId>140609</IncidentId> 
     <JunctionId>1</JunctionId> 
     <PropType>Data1</PropType> 
     <Damage>Data2</Damage> 
     <UserName>John1</UserName> 
     <ContractNO>10040/10</ContractNO> 
     <FixName>Data3</FixName> 
     <TimeStart>14:31</TimeStart> 
     <TimeDue>17:31</TimeDue> 
     <TimeEnd>14:38</TimeEnd> 
     <StatusID>1</StatusID> 
     <StatusText>End</StatusText> 
     <Priority>High</Priority> 
     <Notes /> 
     <IncidentFactor /> 
     <Description /> 
     <DtStartPlus>2017-01-18T14:31:00</DtStartPlus> 
     <DtDuePlus>2017-01-18T17:31:00</DtDuePlus> 
     <DtEnd>2017-01-18T14:38:00</DtEnd> 
     </DepartmentReport> 
     <DepartmentReport> 
     <IncidentId>140609</IncidentId> 
     <JunctionId>1</JunctionId> 
     <PropType>Data10</PropType> 
     <Damage>Data20</Damage> 
     <UserName>Max1</UserName> 
     <ContractNO>10040/10</ContractNO> 
     <FixName>Data30</FixName> 
     <TimeStart>14:31</TimeStart> 
     <TimeDue>17:31</TimeDue> 
     <TimeEnd>14:38</TimeEnd> 
     <StatusID>1</StatusID> 
     <StatusText>End</StatusText> 
     <Priority>High</Priority> 
     <Notes /> 
     <IncidentFactor /> 
     <Description>Description1</Description> 
     <DtStartPlus>2017-01-30T17:39:00</DtStartPlus> 
     <DtDuePlus>2017-01-30T20:39:00</DtDuePlus> 
     <DtEnd>2017-01-30T18:34:00</DtEnd> 
     </DepartmentReport> 
    </ArrayOfDepartmentReport>" 

당신이 XML 형식으로 반환 볼 수 있습니다. 여기

그리고는 테이블 :

<table class="table table-striped table-hover table-condensed"> 
     <thead> 
      <tr> 
       <th>Id</th> 
       <th>Name</th> 
       <th>Credit</th> 
       <th>Semester</th> 

      </tr> 
     </thead> 

     <tbody><tr ng-repeat="record in report track by $index"> 
      <td>{{record.IncidentId}}</td> 
      <td>{{record.JunctionId}}</td> 
      <td>{{record.PropType}}</td> 
      <td>{{record.Damage}}</td> 
     </tr> 
     </tbody> 
    </table> 

을하지만 테이블에 데이터를 표시 할 때이 표시 아니에요.

웹 서비스에서 반환 된 데이터가 JSON 형식이 아닌 XML 형식이기 때문에 레코드가 표시되지 않습니다.

위의 표에 어떻게 데이터를 표시 할 수 있습니까?

+2

는 당신이 바로 그것을 짐작 :-) 당신을 위해 작동! AngularJS는 JSON이 작동해야합니다. XML을 JSON으로 변환하려면 라이브러리를 검색해야한다. – 31piy

+0

XML-> JSON 변환기를 사용하면 필요를 해결할 수 있습니다. http://goessner.net/download/prj/jsonxml/xml2json.js – Zooly

답변

1

일부 js 라이브러리 (예 : X2JS)를 사용하여 가져 오는 XML 데이터를 JSON 형식으로 변환해야합니다.

다음
var vm = this; 
var x2js = new X2JS(); 
var dataAsJson = x2js.xml_str2json(xmlData); 
vm.report = dataAsJson.ArrayOfDepartmentReport.DepartmentReport; 

이 작업 바이올린입니다 :

그리고 컨트롤러에 이것을 시도

https://jsfiddle.net/gtrwzsn1/398/

희망이

관련 문제