내가 JSON을 반환하는 서비스를, 가정 모델에 관련이 응답입니다 :AngularJS와이 액세스 JSON 객체가
{
"model": 48870,
"id": 20
}
내가이 수행 할 수
$scope.response = Service.get();
을 그리고 그것은 할당합니다 JSON 응답은 $scope.response
입니다. 여기서 문제는 model
또는 id
에 $scope.response.model
또는 $scope.response.id
을 통해 직접 액세스 할 수 없다는 것입니다. 이 상황에 대한 해결책은 서비스의 성공 콜백 함수를 정의하고 model
또는 id
을 data
에서 가져 오는 것입니다. 그러나 $scope.response
이 JSON 객체 전체를 포함하고 있기 때문에 이론적으로 (그리고 깨끗한 코드를 위해) 그 객체에 액세스 할 수 있어야합니다. 여기
두 질문 :이 모델의 AngularJS와 표현의 한계
- 인가?
- 각 통화에 대해 성공 콜백을 정의 할 필요없이 어떻게 자식 (심지어는 손자)을 가리킬 수 있습니까?
1. 아니요, AngularJS에는 이러한 제한이 없습니다. 2.이 모델을 사용하는 방법에 따라 달라집니다 : html-template 데이터 바인딩 또는 컨트롤러 코드. 후자의 경우에는 '$ scope.response.model'이 사용되기 전에로드되어야합니다 (예 : 성공 콜백). 그렇지 않으면 ReferenceError가 발생합니다. –
Service.get()의 모양은 무엇입니까? $ http.get 또는 이와 유사한 것을 사용하고 있다면 아마도 실제 JSON이 아닌 Promise를 반환하는 해당 함수와 관련된 문제 일 것입니다. 약속은 "템플릿 엔진에 의해 각도로 인식됩니다. 즉 템플릿에서 범위에 첨부 된 약속을 마치 결과 값인 것처럼 취급 할 수 있음을 의미합니다." [$ q] (http://docs.angularjs.org/api/ng.$q) –
여러분 중 한 분이 대답으로 받아 들일 수 있도록 답장 해주십시오. 둘 다 정확하고 유효합니다. – abstractpaper