Comment configurer Angulaire $ressource (ngResource) pour extraire des données à partir d'un autre domaine à l'aide de la SCRO
J'aimerais être capable de ressources du programme d'installation à l'aide de $de ressources à l'aide de la SCRO à la demande de mes données. J'ai de la SCRO de travail avec $http, mais les mêmes techniques ne s'appliquent pas à $ressource et j'espérais que quelqu'un peut venir à mon secours et me montrer comment avec $ressource.
J'ai modifié les dernière étape de l'angle de tutoriel à l'utilisation de la SCRO en piratant le phonecatServices service, dans le services.js fichier.
J'ai trouvé cet exemple qui utilise le $http.les valeurs par défaut.useXDomain = true; supprimer $http.les valeurs par défaut.les en-têtes.commun['X-requested-with'];ligne pour obtenir angulaire de demander les données à l'aide de la SCRO, mais si j'essaie $ressource.les valeurs par défaut.useXDomain = true; j'obtiens l'erreur: "Impossible de définir la propriété "useXDomain' undefined".
Je présume $ressource n'ont pas cette propriété, donc ma question est, comment puis-je configurer $ressources pour faire la croix de domaine de demandes de ressources à l'aide de la SCRO.
Voici mon code:
angular.module('phonecatServices', ['ngResource']).
factory('Phone', function($resource){
return $resource('http\\://localhost\\:8080/:phoneId.json', {}, {
query: {params:{phoneId:'phones'}, isArray:true}
});
});
J'obtiens l'erreur suivante lorsque j'essaie d'en faire la demande: Objet #<Ressources> n'a pas de méthode "push"
MODIFIER
J'ai essayé la mise en place pour $http, et il fonctionne la plupart du temps, mais lors de l'appel à la ressource de requête, dans ce cas de Téléphone.get(phoneId); ce qui semble jeter l'erreur ci-dessus.
Code appelant, que je soupçonne est à l'origine de l'erreur (à partir de controllers.js étape 11 angulaire tutoriel):
function PhoneDetailCtrl($scope, $routeParams, Phone) {
$scope.phone = Phone.get({phoneId: $routeParams.phoneId}, function(phone) {
$scope.mainImageUrl = phone.images[0];
});
$scope.setImage = function(imageUrl) {
$scope.mainImageUrl = imageUrl;
}
}
Si je supprime les entrailles de la méthode ci-dessus, le code fonctionne très bien (sans l'obtention de l'image pour le site), mais je ne comprends pas pourquoi cela ne fonctionnerait pas? J'ai mis en place le $service http pour l'utilisation de la SCRO, donc ça devrait passer à $ressource apparemment.
Quelqu'un peut nous donner un indice sur elle? (aucun exemple de code serait grandement apprécié).
EDIT: 13/08/13
Juste pour tous ceux qui visitent cette question est au courant, aucune des réponses ci-dessous ont vraiment répondu à la question, je suis à la recherche d'une réponse moi-même, mais si quelqu'un des spots de cela et a une réponse, je serais grandement apprécier encore.
EDIT: 06/09/13
Actuellement à la recherche dans ce projet, semble permettre de tout ce que je cherche: https://github.com/jpillora/xdomain
- avez-vous essayé d'utiliser un service à la place?
- pourriez-vous me donner un exemple svp Edgar?
Vous devez vous connecter pour publier un commentaire.
OK, la solution que j'ai trouvé pour mon projet est xdomain: https://github.com/jpillora/xdomain
J'accepte que cela peut ne pas être adapté pour tout le monde mais c'est un décent de la croix-navigateur solution et alors que nous sommes coincés avec IE<10 ce qui semble être la meilleure solution. (Je suis conscient IE8 et IE9 fournir une prise en charge partielle, mais que, comme toujours avec IE n'est pas un soutien plein et je ne veux pas perdre de temps à faire un autre travail autour de l'IE).
Merci à tous ceux qui ont répondu à la question.
Je pense que cet exemple pourrait travailler pour vous
Faites-vous appel à useXDomain = true dans votre application.config();