반응형
AngularJS 리소스 약속
$ resource를 사용하는 간단한 컨트롤러가 있습니다.
var Regions = $resource('mocks/regions.json');
$scope.regions = Regions.query();
이 컨트롤러를 지시문 (링크 기능)에서 사용하고 있습니다.
var regions = scope.regions;
그러나 지역은 정의되지 않았습니다. 호출이 비동기적인 것은 꽤 논리입니다.
내 질문은 결과를 기다릴 수 있고 영역이 모든 데이터가있는 배열이 될 수 있습니까?
UPDATE :
여기에 지시문의 정의
app.directive('ngMap', function() {
return {
restrict: 'EA',
replace: 'true',
scope: {
},
template: '<div id="map"></div>',
controller: 'AccordMapCtrl',
link: function(scope, element, attrs) {
var regions = scope.regions;
console.log(regions);
for (var region in regions) {}
};
});
비동기 메서드를 사용하려면 $ promise의 콜백 함수를 사용해야합니다. 예는 다음과 같습니다.
var Regions = $resource('mocks/regions.json');
$scope.regions = Regions.query();
$scope.regions.$promise.then(function (result) {
$scope.regions = result;
});
리소스 호출에서 약속을 얻으려면 다음을 사용해야합니다.
Regions.query().$q.then(function(){ .... })
업데이트 : 현재 버전에서 promise 구문이 변경되었습니다.
Regions.query().$promise.then(function(){ ..... })
반대표를 던진 사람들은 그것이 무엇인지, 그리고이 약속을 자원 객체에 처음 추가 한 사람을 모릅니다. 2012 년 말에이 기능을 사용했습니다.
다음을 수행 할 수도 있습니다.
Regions.query({}, function(response) {
$scope.regions = response;
// Do stuff that depends on $scope.regions here
});
/*link*/
$q.when(scope.regions).then(function(result) {
console.log(result);
});
var Regions = $resource('mocks/regions.json');
$scope.regions = Regions.query().$promise.then(function(response) {
return response;
});
참고 URL : https://stackoverflow.com/questions/19490560/angularjs-resource-promise
반응형
'Nice programing' 카테고리의 다른 글
Eclipse / Maven으로 Hadoop 구축-아티팩트 누락 jdk.tools:jdk.tools:jar:1.6 (0) | 2020.10.22 |
---|---|
값 파이썬으로 dict 정렬 (0) | 2020.10.22 |
파이프 라인의 sh DSL 명령에서 stdout을 캡처 할 수 있습니까? (0) | 2020.10.22 |
intl 확장 : php_intl.dll 설치 (0) | 2020.10.22 |
UnicodeEncodeError : 'ascii'코덱은 위치 0의 문자 u '\ xef'를 인코딩 할 수 없습니다 : 서 수가 범위에 없습니다 (128). (0) | 2020.10.22 |