-1

在我的應用我用angular-bootstrap typeahead組成部分,是這樣的:角引導預輸入+ NG點擊/ NG焦點

<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;" /> 

不起作用 - 預輸入簡單地停止工作。有沒有解決方法?謝謝。

+1

看一看從這個問題的第二個答案:http://stackoverflow.com/questions/20879773 /如何棱角-UI-預輸入觸發件時對焦。 – Fjut

+1

@Fjut這類作品 - 稍作修改,謝謝。 –

回答

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(); 
      } 
     }); 
     } 
    } 
    }) 

Demo: plunker