TLDR; ngResource s'attend à un objet ou un tableau d' objets dans votre réponse.
Lors de l' isArray
est définie à l' true
dans la liste des actions, l' ngResource module itère sur chaque article reçu dans la réponse et il crée une nouvelle instance d'une Ressource. Pour ce faire Angulaire effectue une copie en profondeur entre la réception et l' Resource
classe, ce qui nous donne un objet avec des méthodes spéciales ($save
, $delete
et ainsi de suite)
Vérifiez la source ici.
En interne angulaire utilise angulaire.copie pour effectuer la copie en profondeur et cette fonction ne fonctionne qu'avec des objets et des tableaux, quand on passe d'une chaîne, il va la traiter comme un objet.
Les chaînes en JS peuvent se comporter comme des tableaux en fournissant un accès séquentiel à chaque personnage. angular.copy
produira les éléments suivants lorsqu'il est passé d'une chaîne de caractères
angular.copy('hi',{}) => {0:'h', 1:'i'}
Chaque personnage devient une valeur dans un objet, et son indice de référence définie comme la clé. ngResource fournira une ressource avec des propriétés 0
et 1
.
Vos choix sont:
Utiliser le niveau inférieur $http service
$http.get('/res').success(function(data){
$scope.test = data;
});
Retourne un tableau d'objets dans votre réponse json
[{'data': "hello"}, {'data': "world"}]
Intercepter la réponse et la modification de vos données
Si vous ne pouvez pas modifier les données que le serveur envoie en retour et que vous voulez utiliser ngResource vous aurez besoin pour transformer la réponse. Lire comment le faire ici