2015-01-23 3 views
1

:

여기
<div ng-controller="InstructorCtrl"> 
    <table class="table table-bordered"> 
     <thead> 
     <tr> 
      <th>Title</th> 
      <th>Name</th> 
     </tr> 
     </thead> 
     <tbody> 
     <tr ng-repeat="instructor in instructors"> 
      <td>{{instructor.title}}</td> 
      <td>{{instructor.name}}</td> 
     </tr> 
     </tbody> 
    </table> 
</div> 

컨트롤러 보이는 방법은 다음과 같습니다

: Instructor을 주조

angular.module('angularFrontendApp') 
    .controller('InstructorCtrl', function ($scope, Instructor) { 
    $scope.instructors = []; 
    $scope.instructors = Instructor.query(); 
    }); 

은 공장

angular.module('angularFrontendApp') 
    .factory('Instructor', function ($resource) { 
    return $resource('http://localhost:9000/api/instructor');  
    }); 

대부분의 경우 테이블이 잘 렌더링됩니다.

Correct rendering

하지만 내가 페이지를 몇 번을 다시로드 할 때, 테이블 가끔과 같이 보이는 것으로 나타났습니다 :

Incorrect rendering

내가 문제가 때 ng-repeat 차기를 발생 생각하면 $resource$promise은 여전히 ​​해결되지 않습니다. 그래서 instructors의 목록을 반환하는 백엔드 메서드에서 중단 점을 설정했습니다. 실행이 중지되면 테이블 헤더 만 페이지에 렌더링되었습니다. 실행이 계속되고 서버에서 데이터가 전송되면 테이블이 올바르게 렌더링됩니다. 나에게 이상하게 보입니다.

+0

Instructor.query()의 결과를 게시 할 수 있습니까? – Toretto

+0

크롬 개발자 도구 나 방화범이 끌려거나 다시로드로 인해 빈 테이블이 발생한 경우 http-call의 응답을 확인하십시오. 이것은 백엔드 문제 일 수 있습니다. 또한 $ scope.instructors = []; 이 필요하지 않으면 query (..) 메서드는 빈 배열을 반환합니다. – Jon

답변

0

답변 해 주셔서 감사합니다.

백엔드에서 어떤 메소드가 호출되었는지 자세히 살펴 보았습니다. 실제로 라우팅을 엉망으로 만드는 것은 드문 서버 측 문제입니다.