以编程方式选择AngularJS Typeahead选项
发布时间:2020-12-17 18:03:56 所属栏目:安全 来源:网络整理
导读:我有一个AngularJS Typeahead,它可以异步检索匹配项.当条形码扫描到字段中时,它会返回匹配结果,但用户仍然必须选择它.如果它完全匹配,我想自动选择结果.我看到typeahead有一个select(idx)函数,但我不确定如何从我的控制器获取它的引用. 我想象的是这样的: $
我有一个AngularJS Typeahead,它可以异步检索匹配项.当条形码扫描到字段中时,它会返回匹配结果,但用户仍然必须选择它.如果它完全匹配,我想自动选择结果.我看到typeahead有一个select(idx)函数,但我不确定如何从我的控制器获取它的引用.
我想象的是这样的: $scope.SearchItems = function (term) { return $http.get('api/Items/Search',{ params: { term: term } }).then(function (response) { if (response.data.length == 1 && response.data[0].Code == term) { // Somehow inform typeahead control to select response.data[0] } return response.data; }); }; 解决方法
我有一个类似的问题,从来没有想过如何访问typeahead的选择(idx),但我设法让这个功能工作.这是我的hacky解决方法….
$promise.then(function(res) { angular.forEach(res,function(item,key) { // if we have an exact match if (item.title === term) { // update model $scope.src = item; // find item in dropdown var elm = '[id*=option-' + key + ']'; var opt = angular.element(document.querySelectorAll(elm)); //call click handler outside of digest loop $timeout(function() { opt.triggerHandler('click'); },0); } }); // return async results return res; }); 基本上我们只是手动更新我们的模型,在我们的下拉列表中找到元素,然后触发’click’处理程序.确保将$timeout()中的triggerHandler调用设置为零,否则您将获得$rootScope:inprog错误,因为摘要已在进行中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- scala – 什么时候调用ExecutionContext#reportFailure(Thr
- scala – 在Spark SQL中聚合大型数据集
- Bootstrap框架---krajee插件fileinput--最好用的文件上传组
- angular – 无法实例化DatePipe
- Angular 教材
- angularjs – 我可以在身体标签上放置ui-view吗?
- scala – 为什么不能重载没有参数的方法,对于隐式类
- .NET Core中使用Redis与Memcached的序列化问题详析
- Axis2.x WebService开发
- angularjs – Angular 2(Ionic 2)在显示页面时调用页面中的