I have md-autocomplete
:
<md-autocomplete
md-min-length="1"
ng-enter="presEnter();"
md-no-cache="true"
md-selected-item="selectedItem"
md-search-text="searchText"
md-items="item in querySearch(searchText)"
md-item-text="item.name"
placeholder="Search for a vegetable">
<span md-highlight-text="searchText">{{item.name}} :: {{item.type}}</span>
</md-autocomplete>
与指令:ng-enter
.
我的目标:当用户按下Enter
我想隐藏md-autocomplete-suggestions
落下
我从 HTML 知道我需要以某种方式调用:$mdAutocompleteCtrl.hidden = true;
但不知道如何使用$mdAutocompleteCtrl
在控制器中。
我用谷歌搜索并发现:
$timeout( function() { $scope.$$childHead.$mdAutocompleteCtrl.hidden = true; },100);
但没有$mdAutocompleteCtrl
(至少在我的JS中,仅在HTML中,我不知道它的范围)
我玩这个example http://codepen.io/anon/pen/XbOPgv?editors=101:输入“a”,然后在下拉菜单中按 Enter 键。
有任何想法吗?
The $mdAutocompleteCtrl
作为自动完成范围的属性放置。
首先,您需要访问自动完成元素。一种方法是在自动完成中添加 ID:
<md-autocomplete id='Auto'
md-min-length="1"
ng-enter="presEnter();"
md-no-cache="true"
md-selected-item="selectedItem"
md-search-text="searchText"
md-items="item in querySearch(searchText)"
md-item-text="item.name"
placeholder="Search for a vegetable">
然后您可以使用该元素来获取自动完成的内部范围。由于自动完成元素本身位于您提供的范围内,因此您需要获取自动完成的子元素之一的范围。
$scope.presEnter = function(e){
var autoChild = document.getElementById('Auto').firstElementChild;
var el = angular.element(autoChild);
el.scope().$mdAutocompleteCtrl.hidden = true;
};
这是一个工作示例:http://codepen.io/anon/pen/rVPZKN?editors=101 http://codepen.io/anon/pen/rVPZKN?editors=101
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)