Demandant Exemple pour angular.js $http (ou $ressource) POST et transformRequest en tant que service
À l'aide angulaire 1.1.5 et avoir besoin de passer urlencoded de données à l'arrière-plan. J'ai eu à travailler avec la solution à partir d'ici:
Comment puis-je publier des données comme les données du formulaire au lieu d'une demande de la charge utile?
$http({
method: 'POST',
url: url,
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
transformRequest: function(obj) {
var str = [];
for(var p in obj)
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
return str.join("&");
},
data: xsrf
}).success(function () {});
J'ai incorporé ce dans mon contrôleur avec succès, mais le "cleaner" est d'utiliser un service, et $ressource au lieu des $http objet.
Il est possible d'utiliser transformRequest avec $ressource après 1.1.2 de ce sujet:
$ressource transformResponse ne fonctionne pas
mais je ne trouve pas d'exemples de travail. Quelqu'un peut-il fournir un exemple de la solution ci-dessus comme un objet de service à l'aide de $ressource?
OriginalL'auteur user2525528 | 2013-06-26
Vous devez vous connecter pour publier un commentaire.
$RESSOURCE EXEMPLE
Pour csrf, Dans une application rails, vous devez ajouter
<%= csrf_meta_tags %>
dans votre en-tête de page (si pas là par défaut)Ici est un objet de service
Voici un exemple sur un contrôleur
Folders.list()
fera automatiquementGET /folders/
sur le serveur et retourner le résultat(qui doit être json) comme un objet.Astuce:
Directement après
$scope.folders = Folders.list();
dans le contrôleur,$scope.folders
sera vide, il sera renseigné dans le temps, lorsque la réponse renvoyée par le serveur.Exemples simples avec $http et $ressources
http://jsfiddle.net/jhsousa/aQ4XX/
SUR LA FORME
ici est une forme
Vous remarquerez la
ng-model
.'ng-model'=>'item.folderName'
permettra de créer un$scope.item
dans leprojectController
et ajouter une touche defolderName
. De même pour les autresng-model
'.'ng-init'=>'item.orientation=1;'
va exécuter l'expression. Donc, il va faire ce qui suititem.orientation=1
, et cette façon de nous définir une valeur par défaut pour notre radio entrées, si simple.Lorsque le formulaire est soumis
ng-submit
l'attraper et d'appeler lacreate
action de laprojectController
avecitem
en paramètre, pas besoin de dire queitem
contiendra les entrées de valeurs?Ici, c'est le contrôleur de la partie
$scope.create
est l'action qui sera appelé parng-submit
,item
est leitem
paramètre de la forme, de sorte que vous trouverez des choses à l'intérieur commeitem.description
.Folders
est l'objet de service nous avons parlé plus tôt.OriginalL'auteur Micka