2013-03-08 3 views
0

현재 AngularJS 응용 프로그램을 개발 중입니다.AngularJS 이미지 복수 요청

이미지를로드하는 것 외에는 모든 것이 잘 작동합니다.

http://localhost:8080/MyContext/content/img/views/portrait/.jpg

: 발사 2 개 요청이 있다는 것을

<img ng-src="img/views/portrait/{{employee.lastName|lowercase}}.jpg" title="{{employee.lastName}}"/>

이제 이상한 일이있다 :

나는 내보기에 다음 전화를 사용했다 http://localhost:8080/MyContext/content/img/views/portrait/example.jpg

첫 번째 값은 employee.lastName에 대한 값이 비어 있습니다. ng-src 지시문을 사용하고 있지만 왜 이런 일이 발생하는지 설명 할 수 없습니다.

아이디어가 있으십니까?

미리 도움을 주셔서 감사합니다.

내 자원 코드 내가 전화를 컨트롤러에

var employeeService = $resource('/MyContext/rest/employees/:employeeId', {}, {}); 
employeeService.findById = function(id) { 
    return employeeService.get({employeeId:id}); 
}; 

:

$scope.employees = EmployeeService.findAll(); 
+0

플 런커를 설정할 수 있습니까? 이것은 효과가있다. – Stewie

답변

0

당신이 $ 자원 서비스를 사용하여 직원 데이터를 로딩하고 있습니까? 그렇다면 $ 리소스 서비스는 첫 번째 요청을 설명 할 빈 개체를 먼저 반환합니다. 서버의 데이터가 수신 되 자마자 그 데이터는 이전에 비어있는 객체로 복사되고 바인딩 된 값의 업데이트를 트리거합니다. 귀하의 경우에 그것은 img의 ng-src가되며 두 번째 요청을 트리거합니다.

+1

예 리소스를 사용하고 있습니다. 나는 첫 번째 게시물에 추가했습니다. 대안은 무엇입니까? 또는 2 통화를 피하는 방법은 무엇입니까? – mooonli

+0

서비스 호출 내에서 이미지를 미리로드 할 수 있습니다. 이 예와 같이 : http://rabidgadfly.com/2013/03/super-easy-angular-image-gallery/ – Sharondio

0

당신이 광고 employee.lastName에 감시자 수있는 $ HTTP의 성공 콜백을 사용하지 않으려면 :

먼저 컨트롤러의 기본 사진을 선택합니다

$scope.defaultPicture = '/MyContext/content/img/views/portrait/default.jpg' 

를 사용하여

<img ng-src="{{ defaultPicture }}" title="{{ employee.lastName }}"/> 
다음

광고 employee.lastName에 감시자 :

보기에

완료, 브라우저에서 캐시 할 기본 그림을 가져 오도록 호출이 있으며 employeeService 리소스가 준비되면 이미지가 자동으로 변경됩니다.

방금 ​​프로젝트에서 사용했습니다.