针对单个输入对Blur发出AJAX请求

针对单个输入对Blur发出AJAX请求,ajax,angularjs,forms,Ajax,Angularjs,Forms,我对Angular非常陌生,有这样一个表单(大约15个输入和选择): 我是否必须发送$event作为函数参数,如ng blur=“test($event)”并从中获取元素Id和值 谢谢大家 编辑 是否可以使用$watchCollection并在$scope.config对象上监视?我认为最好发送$event,因为这将是最可扩展的解决方案。我过去也做过类似的事情: <input name="title" ng-blur="ctrl.onFieldChanged($event)" type="

我对Angular非常陌生,有这样一个表单(大约15个输入和选择):

我是否必须发送$event作为函数参数,如ng blur=“test($event)”并从中获取元素Id和值

谢谢大家

编辑
是否可以使用$watchCollection并在$scope.config对象上监视?

我认为最好发送$event,因为这将是最可扩展的解决方案。我过去也做过类似的事情:

<input name="title" ng-blur="ctrl.onFieldChanged($event)" type="text" ng-model="ctrl.title"/>
希望这有帮助。

在视图中

onblur=test(config.company,'name')

在控制器中

    $scope.test = function(value,name){

             $http({
      url: '...',
      method: 'POST',
      name: value
    });

希望有帮助

事件本身可能并不有趣,但您可以将模糊的字段作为参数传递给
ng blur
函数,如
ng blur('company')
。在控制器中,只需验证此更新字段,并通过
$http
调用将其传递给服务器。我们已经想到了这一点。会有用的。谢谢你的帮助。NP!Re:$watchCollection问题,这种方法可能也有效,但我认为它会在输入字段中的每次击键时触发。这将使确定输入字段编辑何时完成并应持久化到后端变得更加复杂。不过,如果你想获得这种容错能力,这可能是一种很好的方法来处理5秒超时后的保存。谢谢,我已经用同样的方法进行了处理,但它开始感觉有点脏,因为只需要获取密钥名称(“公司”)就可以将整个$event作为param发送。
<input name="title" ng-blur="ctrl.onFieldChanged($event)" type="text" ng-model="ctrl.title"/>
this.onFieldChanged = function ($event) {
    var data = {};
    data[$event.currentTarget.name] = self[$event.currentTarget.name];

    $http({
      url: '...',
      method: 'POST',
      data: data
    });
  };
    $scope.test = function(value,name){

             $http({
      url: '...',
      method: 'POST',
      name: value
    });