AngularJS - 如何将表单提交给服务器上的控制器?

Raj*_*thy 13 javascript form-submit angularjs

AngularJS站点上的cookbook表单示例仅保存客户端上的状态.我如何提交到服务器?

或者,如何form.submit()ng:click="save()"函数中的表单上使用jQuery ?

编辑 - 找到2种方法(我还删除了之前粘贴的HTML标记 - 只需参考源代码的高级表格cookbook示例)

  1. http://webpac2.rot13.org:3000/conference/Work(由Dobrica Pavlinusic提供)使用资源以AngsonJS的方式将数据以JSON格式发送到服务器.我在服务器端遇到了问题 - AngularJS发送它很好但是grails正在破坏它(根据firebug和请求内容长度).我需要更多地研究这个问题.如何更改资源方法的角度内容类型$save()

  2. 将表单放入并使用提交按钮.由于我没有使用单页Web应用程序,因此我使用了这种方法.大多数验证都在客户端上,在服务器上还有一些验证对我来说已经足够了.

只需将此放在这里,以便其他人可以使用它来获得可能的解决方案和最佳方法.

Voj*_*jta 12

注意,视图(您的html模板)和逻辑(您的JS代码)之间存在严格的分离- 主要是因为可测试性.

正确的方法是使用$ resource(用于REST)或低级$ http将模型发送到服务器.而不是在模板中完成工作.

简单示例 - HTML模板

First: <input type="text" ng-model="person.first" />
Last: <input type="text" ng-model="person.last" />
<button ng:click="save()">Save</button>
Run Code Online (Sandbox Code Playgroud)

JavaScript - 控制器

function FormCntl($scope, $http) {
  $scope.save = function() {
    $http.put('/save.py', $scope.person);
  };
}
Run Code Online (Sandbox Code Playgroud)

  • @Voles谢谢,更新到当前的v1语法(答案是用0.9.*语法编写的) (2认同)

dpa*_*lin 0

据我所知,并没有真正的好方法来修改 Angular 发送到服务器期望编辑 Angular Source 的标头。这是计划中的增强功能,但尚未完成。

我认为Angular 谷歌小组可能是提出此类具体问题的更好地方,因为开发人员非常友好且知识渊博。