我在解决这个似乎很麻烦的问题时遇到了麻烦。
当我选择(使用键盘或鼠标)从typeahead的下拉列表中选择一个值时,输入字段中的ng-model就会很好地填充。

但是,如果我输入几个字母然后单击“转义”按钮,则由于我没有选择值,因此“ textFieldValue” ng模型似乎被“未定义”所覆盖。

解决此问题的最佳方法是什么?还是太多了?

<input type="text" ng-model="textFieldValue"
typeahead="list for list in getList($viewValue)" typeahead-editable="false">

最佳答案

您可以通过使用临时值来实现。

将温度值分配为提前输入

<input type="text" ng-model="tempValue" typeahead="list for list in getList($viewValue) | filter:$viewValue" typeahead-editable="false" >


监视tempValue并决定是否更新目标值。

    $scope.$watch('tempValue', function(tempValue){
      if(shouldUpdateTheTargetValue(tempValue)) {
        $scope.targetValue = tempValue;
      }
    });


我为此创造了一个小矮人。 -http://plnkr.co/edit/r63027iRobX4skV9YK60?p=preview

07-26 04:33