我有可能是一个奇怪的情况: 我有一个表单,可以编辑/更新来自不同对象(作为服务)的信息。
我想要实现的是:我想使用ng-model将输入字段链接到相关对象但是在表单提交时我希望获得一个formData对象以通过POST发送。问题是:如何将Angular的Form对象转换为formData?我不是指循环或无聊的东西,以前有人这么做过吗?
HTML
<form name="Ctrl.form" ng-submit="Ctrl.submit()" ng-controller="MyController as Ctrl">
<input type="text" name="full_name" ng-model="Ctrl.user.fullName">
<input type="text" name="cart_total" ng-model="Ctrl.cart.gross_total">
<input type="city" name="city" ng-model="Ctrl.dropship.city">
</form>
控制器
this.user = User.getData();
this.cart = Cart.get();
this.dropship = User.addressBook.getDropShip();
this.submit = function() {
// transform this.form into formData
}
它有意义吗?我错过了什么吗?
谢谢! 你真的
编辑:表单包含(收集来自)多个对象的信息,但并非所有属性都可以进行POST。我希望这更有意义
答案 0 :(得分:0)
您已经有一个绑定到表单输入字段的用户对象 - 只需将其传递给您的提交函数:
HTML
<form name="Ctrl.form" ng-submit="Ctrl.submit(Ctrl.user)" ng-controller="MyController as Ctrl">
<input type="text" name="full_name" ng-model="Ctrl.user.fullName">
</form>
控制器
this.user = User.getData();
this.submit = function(user) {
$http({ method:'POST', url: 'AddUser', data: user })
.success(function() {
...
});
}
答案 1 :(得分:0)
当把对象放在javascript函数作为参数时,你通过引用传递它,所以你得到的服务对象不是副本,而是这个对象的地址,所以每个操作都绑定到视图。这将允许多个视图的重用服务