有没有一种方法可以序列化angularjs的功能?
我的帖子现在看起来像这样。
$scope.signup_submit = function () { var formData = { username: $scope.username, full_name: $scope.full_name, email: $scope.email, password: $scope.password, confirm_password: $scope.confirm_password } $http({ method: "POST", url: '/signup', data: formData, }).success(function (data) { if (data.status == 'success') { alert('all okay'); } else { alert(data.msg) } }); }
这不是使用AngularJS访问表单数据的方式。表单中的数据应在范围内绑定。
因此,使用一个对象,例如$ scope.formData,它将包含您的所有数据结构,然后应使用ng-model将每个表单元素绑定到此对象。
例如:
http://jsfiddle.net/rd13/AvGKj/13/
<form ng-controller="MyCtrl" ng-submit="submit()"> <input type="text" name="name" ng-model="formData.name"> <input type="text" name="address" ng-model="formData.address"> <input type="submit" value="Submit Form"> </form> function MyCtrl($scope) { $scope.formData = {}; $scope.submit = function() { console.log(this.formData); }; }
提交上述表单后,$ scope.formData将包含表单的对象,然后可以在您的AJAX请求中传递该对象。例如:
Object {name: "stu", address: "england"}
要回答您的问题,没有更好的方法使用AngularJS“序列化”表单数据。
但是,您可以使用jQuery:$ element.serialize(),但如果要正确使用Angular,请使用上述方法。