UI-bootstrap typeahead不解析promise

时间:2013-07-27 10:57:32

标签: angularjs angular-ui-bootstrap

问题描述

嗨,我对UI-Bootstrap的预先输入有问题,主页上有一个标准示例,用于演示预先输入:

http://plnkr.co/edit/LS5OMsnQtdsJ87eW4pjG?p=preview

这个例子非常好用,直到我开始使用带有typeahead指令的promises: http://plnkr.co/edit/ZuUBDOPcOJIW0Bkskrb5?p=preview

变化非常简单,我已经使用$ timeout服务替换了使用延迟初始化的直接变量初始化,因此typeahead停止工作

问题:

我做错了什么?明确指出UI-Bootstrap的预先输入:works with promises and it means that you can retrieve matches using the $http service with minimal effort

谢谢,

1 个答案:

答案 0 :(得分:3)

您应该返回一个解析为匹配结果的承诺:

$scope.getStates = function($viewValue) {    
    return $timeout(function () {
      return filterFilter(['Alabama', 'Alaska', ...], $viewValue);
    }, 1000);    
  };

然后在HTML中:

<input type="text" ng-model="selected" typeahead="state for state in getStates($viewValue)">

这是一个有效的插件:http://plnkr.co/edit/RAkzX0UoWHVLUOZ6jEyA?p=preview

您在过滤的承诺中编写表达式的方式。