AngularJS将同一个侦听器绑定到不同的输入,如何获取输入值
angularjs bind the same listener to different inputs, how to get input value
>我有几个绑定到不同模型字段的输入,如model.a
和model.b
,我需要发送服务器请求以获取自动完成数据。所以两者的逻辑是相同的。我想为每个ng-change="changeHandler()"
添加指令。但是在changeHandler()
内部我需要获取输入值 - 如何正确执行此操作?我不能只采用一些模型字段,因为我对两个字段都有相同的代码。
如果你想做到这一点,而不在每次更改时都触发对 Web API 的 GET,你必须变得更加复杂。
在model.a
或model.b
(或两者)上设置$watch
在$watch处理程序中,通过 Promise 拉取自动完成结果,它看起来有点像这样:
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/
然后将自动完成绑定到承诺的结果。
您还需要对更改进行去抖动,这篇SO帖子可能会有所帮助:如何在AngularJS中编写去抖动服务
我认为这篇博文可能会有所帮助: http://www.grobmeier.de/angular-js-autocomplete-and-enabling-a-form-with-watch-and-blur-19112012.html#.UkMBIB1Dsak
将模型名称作为参数传递到更改函数中:
<input type='text' ng-model='testinput' ng-change='changeHandler(testinput)'/>
您可以将所有这些内容包装在一个可以访问 scope.model.a 的指令中,也可以像这样做:
ng-change="chanageHandler(model.a)" ng-model="model.a"
相关文章:
- 在数据库中循环值时,为输入框获取唯一值
- 如何通过Jquery从具有相同名称但不同索引的输入中获取所有值
- 在不使用PHP的情况下将表单输入值获取到Javascript中
- jQuery从输入中获取值并检查它是否'It’是的.如果是这样,它应该公布有多少是正确的
- JavaScriptHtml从一个输入中获取值
- 从输入中获取字符串,并在AngularJS中发出AJAX请求
- 通过单击链接(兄弟姐妹?)从无线电输入中获取id
- angularjs 使用什么事件从文本输入中获取值
- 从子输入中获取id值,并在更改时将其推送到Javascript中的数组中
- 在 Jquery ajax 中,在一个字段中输入时获取详细信息
- 调整从选择输入中获取数据并将其放入 DIV 的 jQuery 代码
- 从动态添加的文本输入中获取值
- 从输入 jquery 获取值
- jQuery令牌输入轨道获取错误Uncaught TypeError:Object[Object Object]没有方法
- javascript,如何按类从输入中获取值
- JavaScript 中的 if 语句,用于从选择输入中获取值
- 从动态生成的DataTable输入中获取值
- 从动态生成的输入中获取帖子数据
- 从 KNOCKOUTJ 中动态生成的输入中获取值
- 当浮点部分为空时,从 JQuery 中的输入元素获取数字值不起作用