2015-06-17 11 views
8

Używam żagli o ostrych krawędziach.jak używać żagli o kątowym źródle?

var items = sailsResource('roles').query(); // GET /item 
$scope.roles = items; 
angular.forEach($scope.roles, function(value, key) { 
    console.log(key + ': ' + value); 
}); 

wynik: niezdefiniowany.

Jak przeanalizować to zapytanie?

+0

czy jest coś w zmiennej 'items' po wywołaniu' query() '? – ronen

+0

@ronen .. działa ng-repeat, ale nie działa forloop lub kanciasty, foreach .. console.log (items.length); nie działa – Angu

+0

https://github.com/angular-resource-sails/angular-resource-sails. ten dokument podążam za – Angu

Odpowiedz

1

Metoda query jest asynchroniczna. sailsResource tworzy usługi zgodne z API $resource, więc musisz wykonać pętlę w funkcji zwrotnej.

Na przykład

$scope.roles = sailsResource('roles').query(function(roles) { 
    angular.forEach(roles, function(value, key) { 
     // and so on 
    }); 
}); 

Można również użyć właściwości $promise dostęp do obietnicy, np

$scope.roles = sailsResource('roles').query(); 

$scope.roles.$promise.then(function() { 
    angular.forEach($scope.roles, function(value, key) { 
     // etc 
    }); 
}); 
+0

Dziękuję za odpowiedź .. użyłem tego – Angu

2

Zaznacz tę część dokumentacji: https://github.com/angular-resource-sails/angular-resource-sails#success-and-error-callbacks

Jeśli chcesz uzyskać dostęp do danych, które pobrałeś, prawdopodobnie będziesz musiał udowodnić de funkcja zapytania z callbackami. Więc Twój kod stałby się

sailsResource('roles').query(function(items) { // GET /item 
    $scope.roles = items; 
    angular.forEach($scope.roles, function(value, key) { 
     console.log(key + ': ' + value); 
    }); 
});