Angular表单自动重新提交(事件触发到早期)

时间:2014-02-03 10:35:04

标签: javascript forms angularjs

我想制作一个在每次更改时自动提交的表单。我试图建立一个根模型并观察它的变化。问题是我的指令在链接函数中预先填充了模型,并且过早触发了手表。

Plunker:http://plnkr.co/edit/oH2Homlr7efu0IctoyQF?p=preview

所以我有两个问题:

  1. 如何知道“真正的”变化何时发生?
  2. 如何提交表格? (它只是$('form')。submit()?)
  3. 更新

    Plunker:http://plnkr.co/edit/7OOSuaf7i3ay70X6WGun?p=preview

    我更新了代码以显示查询字符串并监视form.$dirty,但该值未提交。我认为ng-model不会更新input[value]。关于如何解决这个问题的任何想法?

    PS。我不想使用ajax请求来提交表单。

1 个答案:

答案 0 :(得分:0)

我认为您可以观看form.dirty标志而不是表单,它会为您提供正确的触发器。我正在使用这个。

   $scope.$watch('form.$dirty',function(newValue, oldValue){
             if(newValue){//if isDrty=true
               console.log('resubmit', newValue);
           }
     },true);  

对于第二个问题,您可以使用$http服务向表单(json对象)的服务器执行ajax请求

$http.post('/someUrl', $scope.form).success(successCallback);