찾다

 >  Q&A  >  본문

angular.js - 서비스의 $http 요청은 정상이지만 컨트롤러에서 데이터를 가져올 수 없습니다.

사용자 지정 서비스에서 $http를 사용하여 로컬 json 파일의 데이터를 가져옵니다. 요청이 성공했지만 컨트롤러에서 데이터를 얻을 수 없습니다.
점을 깨면 데이터가 비어 있는 것을 알 수 있습니다. 페이지가 새로 고쳐졌지만 데이터가 있습니다. 이유는 무엇입니까?

맞춤형 서비스 코드:

으아아아

컨트롤러 내부 코드:

으아아아

Json 데이터 필요:

으아아아

중단점은 console.log입니다

페이지를 새로고침하면

컨트롤러에서 데이터를 가져올 수 없는 이유는 무엇인가요? 비동기성 때문인가요?

曾经蜡笔没有小新曾经蜡笔没有小新2872일 전642

모든 응답(2)나는 대답할 것이다

  • 给我你的怀抱

    给我你的怀抱2017-05-15 16:59:48

    비동기 호출 문제
    service.getData()를 실행한 후에도
    service.returnedData 값이 여전히 비어 있습니다~~~

    또한 서비스에서 service.getData()가 호출되는 이유는 무엇입니까?
    서비스는 다른 모듈에서 호출되어야 합니다. 다른 모듈에 데이터가 필요하지 않은 경우 미리 로드해야 하는 이유는 무엇입니까?

    회신하다
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-15 16:59:48

    1. 서비스 코드에 작성한 서비스 이름은 requestData이지만 컨트롤러에 작성한 이름은 blogData입니다. 이것이 이유인지는 모르겠습니다.
    2. 커스텀 서비스에서 $http를 사용하는 경우 $http 부분을 분리한 후 컨트롤러 코드에서 차례로 호출해야 합니다.

    즉, 컨트롤러는 최소한 다음과 같이 작성되어야 합니다:
    requestData.getData().then(콜백 함수)

    콜백 함수 부분을 사용자 정의 서비스에 캡슐화하는 것이 좋습니다

    회신하다
    0
  • 취소회신하다