angularjs sérialiser les données de formulaire
je tiens à sérialiser les données du formulaire dans angularjs. voici le code du contrôleur:
function SearchCtrl($scope, $element, $http) {
$scope.url = 'php/search.php';
$scope.submit = function() {
var elem = angular.element($element);
//var dt = $(elem.parent()).serialize();
console.log($(elem.parent()).serialize());
$http({
method: 'POST',
url: $scope.url,
data: 'first=hgf&last=ghfgh',
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).success(function(data, status) {
$scope.status = status;
$scope.data = data;
$scope.result = data; //Show result from server in our <pre></pre> element
//var elem = angular.element(e.srcElement);
//alert($(elem.parent()).serialize());
}).error(function(data, status) {
$scope.data = data || "Request failed";
$scope.status = status;
});
return false;
};
}
édité:
<!DOCTYPE html>
<html ng-app>
<head>
<title>Search form with AngualrJS</title>
<script src="../angular-1.0.1.min.js"></script>
<script src="http://code.jquery.com/jquery.min.js"></script>
<script src="js/search.js"></script>
</head>
<body>
<div>
<form ng-controller="SearchCtrl" ng-submit="submit()">
<label>Search:</label>
<input type="text" ng-model="keywords" placeholder="enter name...">
<input type="text" ng-model="desc" placeholder="enter description...">
<button type="submit">Search</button>
<p>Try for example: "php" or "angularjs" or "asdfg"</p>
</form>
<pre ng-model="result">
{{result}}
</pre>
</div>
</body>
</html>
mais rien n'est imprimé sur la console. où vais-je tort?
édité le contenu à inclure html.
Je me demande pourquoi
j'ai essayé avec $(elem).serialize(), toujours pas de résultat! ce shpuld-je faire?
Je me demande pourquoi
$(elem.parent()).serialize())
est utilisé au lieu de simplement $(elem).serialize()
. N'est-ce pas le $element ici un <form>
?j'ai essayé avec $(elem).serialize(), toujours pas de résultat! ce shpuld-je faire?
OriginalL'auteur z22 | 2012-08-27
Vous devez vous connecter pour publier un commentaire.
De la doc:
Dans le HTML, les entrées n'ont pas de noms, d'où
serialize
retourne une chaîne vide. Corriger cela avec quelque chose comme...Et, d'ailleurs, vous n'avez pas à envelopper Angulaire
$element
en fonction jQuery:$element.serialize()
serait de travailler sur ok.La démo.
OriginalL'auteur raina77ow