嗨,我对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
谢谢,
答案 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
您在过滤的承诺中编写表达式的方式。