2016-08-26 2 views
0

에서 결합하지 않고 내가 일을 가야 할 몇 가지 과정을 따랐습니다 (REST) 일부 결과 (JSON)를 html 표에 바인드합니다.

webservice는 웹 사이트를 실행할 때 앵귤러 컨트롤러와 공장에서 발생하는 $ http.get을 통해 내 웹 서비스의 중단 점에 도달하고 JSON을 반환합니다.

문제는 내 테이블의 '이름'태그에 예상되는 데이터가 표시되지 않습니다. 내 테이블이 '확장'되어 일부 데이터가 표시되는 것처럼 보이지만 단지 비어 있습니다.

JSON 응답 :

내가 지금까지있어 무엇

[{"Id":1,"Name":"E-Plan"},{"Id":2,"Name":"Preliminary Drawing"},{"Id":3,"Name":"Preliminary Design"},{"Id":4,"Name":"Department Layout"}] 

테이블 :

<div class="projecttypetable" style="overflow-x:auto;"> 
     <table style="width:100%"> 
      <tr data-ng-repeat="pt in projectTypes"> 
       <td> 
        <p><b>{{pt.Name}}</b></p> 
       </td> 
      </tr> 
     </table>  
    </div> 

각 컨트롤러 :

spftApp.controller('ProjectTypeController', function ($scope, projectTypesFactory) { 

    projectTypesFactory.async().then(function(d) { 
     $scope.projectTypes = d; 
    }); 
}); 

각도 공장 :

spftApp.factory('projectTypesFactory', function ($http) { 

    var urlBase = 'http://localhost:49165/Service1.svc/projectTypes' 

    return { 
     async: function() { 
      return $http.get(urlBase); 
     } 
    } 

내가 뭘 잘못하고 있니?

+0

지금까지 해결책을 찾았습니다 ... 정상적으로 작동했는데 웹 구성에 'Access-Control-Allow-Origin'을 추가해야했습니다! –

답변

-2

갱신

각도 공장 아래와 같은 각 공장 :

spftApp.factory('projectTypesFactory', function ($http) { 

var urlBase = 'http://localhost:49165/Service1.svc/projectTypes' 

return { 
    async: function() { 
     return $http.get(urlBase).then(function(response) { 
      return response;   

    }); 
    } 
    } 
} 
+0

OP가'response'보다는'promise'를 돌려 주려고했습니다 : – Vineet

+0

안녕하세요, 두 가지 제안을 시도했지만 여전히 빈 HTML 테이블이 생성됩니다. 내가 시도한 한 가지 HTML get 대신 정적 개체로 작업하는 것이므로 HTML 테이블이 작동합니다. 브라우저에서 데이터를 표시하지 못하게하는 특정 설정이있을 수 있습니까? IIS Express가 몇 가지 문제를 일으키는 곳을 읽었습니다 ... –

1

데이터는 d.data입니다. 이것을 시도하십시오 :

spftApp.controller('ProjectTypeController', function ($scope, projectTypesFactory) { 

    projectTypesFactory.async().then(function(d) { 
     $scope.projectTypes = d.data; 
    }); 
}); 

자세한 내용은 $http 설명서를 확인하십시오.

관련 문제