首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何以编程方式打开angular md-autocomplete?

如何以编程方式打开angular md-autocomplete?
EN

Stack Overflow用户
提问于 2015-09-14 05:06:08
回答 4查看 5.7K关注 0票数 5

我需要打开特定事件的angular material md-autocomplete下拉列表。有没有办法做到这一点?

我已经得到了md-autocomplete的基本设置,类似于这个http://codepen.io/paucaverba/pen/GpogPv?editors=101

代码语言:javascript
复制
<div ng-controller="DemoCtrl as ctrl" layout="column" class="autocompletedemoBasicUsage" ng-app="MyApp">
代码语言:javascript
复制
  <md-autocomplete md-selected-item="ctrl.selectedItem" md-search-text="ctrl.searchText" md-items="item in ctrl.querySearch(ctrl.searchText)" md-item-text="item.display" md-min-length="0" placeholder="What is your favorite US state?">
    <md-item-template>
      <span md-highlight-text="ctrl.searchText" md-highlight-flags="^i">{{item.display}}</span>
    </md-item-template>
    <md-not-found>
      No matches found for "{{ctrl.searchText}}".
    </md-not-found>
  </md-autocomplete>
  <br>
        <button class="md-button md-raised"> open </button>
</form>

如果我单击控件本身,它将打开下拉列表。当我点击“打开”按钮时,我想要同样的行为。

EN

回答 4

Stack Overflow用户

发布于 2015-09-14 12:49:57

为您的md-autocomplete提供id="auto_complete_id"属性

你可以试着这样做:(已测试。这应该是可行的。这在codepen上不起作用,它会在控制台中抛出一个错误)

codepen上的控制台出错( Looking up elements via selectors is not supported by jqLite! )

在本机浏览器上测试它。

HTML:

代码语言:javascript
复制
<button  ng-click=openAutocomplete()> Open </button>

JS:

代码语言:javascript
复制
$scope.openAutocomplete=function(){
   setTimeout(function(){
       angular.element('#auto_complete_id').find('input').focus();
   },0);
}
票数 1
EN

Stack Overflow用户

发布于 2016-07-29 21:04:04

只需对autocompleteDirective和autocomepleteController进行简单的修改,以公开一个指令属性,例如md-focusmd-,就可以允许使用者控制器对这些事件进行操作

票数 1
EN

Stack Overflow用户

发布于 2015-11-05 17:56:41

我知道这是一个很晚的答案,但如果有人找到了这个答案,上面的问题主要是选择元素的问题。

在当前的示例中(在问题中的CodePen中给出),在以下情况下,整个事情似乎都能正常工作

代码语言:javascript
复制
angular.element('#testId').focus();

被更改为

代码语言:javascript
复制
document.querySelector('#testId').focus();

甚至是

代码语言:javascript
复制
document.getElementById('testId').focus();

这是由于jqLite的局限性,并且(在我看来)基于jQuery样式选择器的查找的假设是可用的,而不是在适当的时候使用适当的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32554542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档