在我的应用中,我使用How to split data into 3 sets (train, validation and test)?组件,这样:
<input type="text" ng-model="selected" placeholder="Start typing to select an object" uib-typeahead="obj as obj.name for obj in objectList | filter:{name:$viewValue}" class="form-control" typeahead-show-hint="true" typeahead-min-length="0" />
一切运作良好,但用户觉得关注和放松是不方便的。清除输入字段以再次查看完整的建议列表。所以我想添加一个功能:一旦用户关注它就清除输入字段并再次显示建议列表。但这样做是天真的方式:
<input ... ng-click="selected = null;" />
或
<input ... ng-focus="selected = null;" />
不起作用 - 打字只是停止工作。有什么解决方案吗?谢谢。
答案 0 :(得分:0)
可能最简单的解决方案是为此目的引入以下指令:
.directive('resetTypeahead', function () {
return {
require: 'ngModel',
link: function (scope, element, attrs, ngModel) {
element.bind('click', function (e) {
var viewValue = ngModel.$viewValue;
if (viewValue) {
ngModel.$setViewValue('');
ngModel.$render();
}
});
}
}
})