【发布时间】:2014-02-07 14:53:26
【问题描述】:
我正在后端使用 symfony2 构建应用程序。我正在考虑在前端使用 AngularJS,但我仍然想使用 symfony 表单。我已经使用正确的模块和所有内容设置了表单,但是实际提交数据时会出现问题。
问题
当 Symfony 呈现表单时,它会将输入的 'name' 属性设置为一个数组,例如 user[username],这是它希望在提交后接收数据的格式。我不知道如何让 Angular 以这种格式提交数据。这就是我所拥有的:
<body ng-app="formApp" ng-controller="formController">
{{ form_start(form, {'attr':{'id': 'registerForm', 'ng-submit':'processForm()'}}) }}
{{ form_row(form.username, {'attr':{'ng-model':'formData.username'}}) }}
{{ form_row(form.password.first, {'attr':{'ng-model':'formData.password'}}) }}
{{ form_row(form.password.second) }}
{% for address in form.userAddresses %}
{{ form_row(address.postalCode, {'attr':{'ng-model':'formData.postalCode'}}) }}
{% endfor %}
<div><input type="submit" value="Save" /></div>
{{ form_end(form) }}
</body>
和控制器:
function formController($scope, $http) {
$scope.formData = {};
$scope.processForm = function() {
$http({
method : 'POST',
url : submit,
data : $.param($scope.formData),
headers : { 'Content-Type': 'application/x-www-form-urlencoded' }
})
.success(function(data) {
alert(data.message);
});
};
}
当我提交时,显然名称-值对使用了formData 变量,所以username=testuser 而不是user[username]=testuser。
我尝试将 formData 变量设置为 formData.user[username],但这根本不起作用。
那么有没有办法在提交时使用输入“名称”,或者做一些事情以便以正确的格式提交表单?任何帮助都会很棒!
【问题讨论】:
标签: javascript php forms angularjs symfony