Javascript angularjs将同一个侦听器绑定到不同的输入,如何获取输入值

Javascript angularjs将同一个侦听器绑定到不同的输入,如何获取输入值,javascript,angularjs,Javascript,Angularjs,我有几个绑定到不同模型字段的输入,如model.a和model.b,我需要向服务器发送请求以获取自动完成的数据。因此,两者的逻辑是相同的。 我想为每个添加ng change=“changeHandler()”指令。但是在changeHandler()中,我需要获取输入值-如何正确地实现这一点?我不能只接受某个模型字段,因为这两个字段的代码相同。将模型名称作为参数传递到change函数中: <input type='text' ng-model='testinput' ng-change='

我有几个绑定到不同模型字段的输入,如
model.a
model.b
,我需要向服务器发送请求以获取自动完成的数据。因此,两者的逻辑是相同的。
我想为每个添加
ng change=“changeHandler()”
指令。但是在
changeHandler()
中,我需要获取输入值-如何正确地实现这一点?我不能只接受某个模型字段,因为这两个字段的代码相同。

将模型名称作为参数传递到change函数中:

<input type='text' ng-model='testinput' ng-change='changeHandler(testinput)'/>

将模型名称作为参数传递到更改函数中:

<input type='text' ng-model='testinput' ng-change='changeHandler(testinput)'/>

您可以将这一切封装在一个指令中,该指令将访问scope.model.a,或者您可以这样做:


ng change=“chanageHandler(model.a)”ng model=“model.a”

您可以将这一切封装在一个指令中,该指令将访问scope.model.a,或者您可以这样做:


ng change=“chanageHandler(model.a)”ng model=“model.a”

如果您想在每次更改时都不启动web API,那么您必须变得更复杂一些

model.a
model.b
上设置$watch(或两者都设置)

在$watch处理程序中,通过承诺获取自动完成结果,看起来有点像这样:

myModule.factory('HelloWorld', function($q, $timeout) {

  var getMessages = function() {
    var deferred = $q.defer();

    $timeout(function() {
      deferred.resolve(['Hello', 'world!']);
    }, 2000);

    return deferred.promise;
  };

  return {
    getMessages: getMessages
  };

});

// from: http://markdalgleish.com/2013/06/using-promises-in-angularjs-views/
然后将自动完成绑定到承诺的结果

您还需要取消您的更改,因此此帖子可能会有所帮助:


我认为这篇博文可能会有所帮助:

如果你想做到这一点,而不是在每次更改时都启动一个web API,那么你必须变得更复杂一些

model.a
model.b
上设置$watch(或两者都设置)

在$watch处理程序中,通过承诺获取自动完成结果,看起来有点像这样:

myModule.factory('HelloWorld', function($q, $timeout) {

  var getMessages = function() {
    var deferred = $q.defer();

    $timeout(function() {
      deferred.resolve(['Hello', 'world!']);
    }, 2000);

    return deferred.promise;
  };

  return {
    getMessages: getMessages
  };

});

// from: http://markdalgleish.com/2013/06/using-promises-in-angularjs-views/
然后将自动完成绑定到承诺的结果

您还需要取消您的更改,因此此帖子可能会有所帮助:

我认为这篇博文可能会有帮助: