2017-11-28 3 views
0

전화를 받아보기로 반환 번호를 검색 :각도 4 내가 다음과 같이 내 쿼리를 작성했습니다하는 백 엔드 응용 프로그램 내 스프링 부팅이

@Query("SELECT COUNT(*) " 
      + "FROM Foo " 
      + "WHERE name = :name and surname = :surname ") 
Integer countByNameAndSurname(@Param("name") String name, @Param("surname") String surname); 

쿼리 내 백엔드 측의 작품 내가 원하는대로. Angular 4를 사용하여 빌드 된 프론트 엔드 측에서 백엔드에서 돌아 오는 순수한 정수를 검색 할 수 없습니다. 내가 무엇을 시도했는지, 나는 그것을 해결할 수 없었다.

getCount() { 
    return this.http.get(this.actionUrl + this.param,{headers: DataService.getHeaders()}) 
     .subscribe(response => { 
      console.log(response); 
      console.log(response.json()); 
      this.countResult = response.json(); 
     //return this.countResult; 
      return response.json(); 
     }) 
    } 

(나는 또한 그것을 getCount(): number{...}으로 반환 값을 제공하지 않으며 내가 전화 내부에 할당하는 변수 countResult을 반환하지만 성공했습니다.) 이 내 서비스 클래스 내부의 방법이다. 둘 다 공공 변수 this.countResult에 할당하고 다른 클래스에서이 변수에 접근하려고 시도했으며 필요한 순수한 정수인 response.json()._body;을 반환하려고했습니다. 전화가 완벽하게 올바르게 진행되고 있음을 보장합니다. 나는 그것을 한 번 이상 시험했다.

그러나 나는 항상 내부에 큰 아무것도 들어 있지 않은 구독자 개체를 얻습니다.

var count = this.dataService.getCountExternalCvs(); 
console.log(count); 

을 그리고 나는 count를 인쇄 할 때, 그것은 위와 같이 OBJ 가입자의 다음과 같이 subscriber obj

나는 서비스를 호출합니다.

응답을 Promise로하고 싶지 않기 때문에 .subscribe()을 사용해야했습니다. 나는 그 값을 필요로합니다. 여기

응답 및 response.json() 내 서비스 호출에 인쇄하고, 내가 시도간에 var count = this.dataService.getCountExternalCvs(); response-response.json()-subscriber

에 의해 얻을 가입자 개체입니다, 나는 가입자 OBJ 제거 할 수 없습니다 진정한 응답을 검색 할 수 있습니다.

+0

서비스는 가입하지 않아야합니다. Observable을 반환해야합니다. 서비스를 호출하는 구성 요소는 이벤트가 구독 될 때 해당 상태를 구독하고 설정합니다. 비동기 호출을 동기 호출로 변환 할 수 없습니다. 그것은 불가능합니다. –

답변

2

당신은 당신의 컴포넌트 클래스에서 서비스

getCount():Observable<any> { 
//service code with MAP to return the json object 
    } 

에서 다음과 같이 관찰 가능한 반환해야,하는 방법을

getCountFromService(){ 
service.getCount().subscribe((data)=>this.countResult =data) 
} 

를 호출 수를 표시하는 HTML 마크 업에 countResult를 사용합니다.

+0

고마워요! =) –

관련 문제