2015-06-17 10 views
8

Ich verwende eckige Ressourcensegel.Wie verwendet man Angular Resource Sails?

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

Ausgabe: undefiniert.

Wie analysiert man diese Abfrage?

+0

gibt es etwas in 'items' Variable nach dem' query() 'Anruf? – ronen

+0

@ronen .. es arbeitet ng-repeat, aber es funktioniert nicht Forloop oder eckig, foreach .. console.log (items.length); funktioniert nicht – Angu

+0

https://github.com/angular-resource-sails/angular-resource-sails. dieses dokument ich folge – Angu

Antwort

1

Die Methode query ist asynchron. sailsResource erstellt $resource API-kompatible Dienste, so dass Sie Ihre Schleife in einer Rückruffunktion durchführen müssen.

Zum Beispiel

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

Sie können auch die $promise Eigenschaft verwenden, das Versprechen zu sitzen, zB

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

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

Danke für deine antwort .. ich habe das benutzt – Angu

2

Überprüfen dieser Teil der Dokumentation: https://github.com/angular-resource-sails/angular-resource-sails#success-and-error-callbacks

Wenn Sie Möchten Sie auf die Daten zugreifen, die Sie abgerufen haben, müssen Sie wahrscheinlich provi de Abfragefunktion mit Rückrufen. So würde Ihr Code werden

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