2013-07-27 45 views
1

問題描述

嗨,我有一個用戶界面,引導的預輸入一個問題,就是在主頁上標準的例子來證明預輸入用法:UI,引導預輸入不能解決承諾

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

這個例子工作得很好,直到我開始使用承諾typeahead指令: http://plnkr.co/edit/ZuUBDOPcOJIW0Bkskrb5?p=preview

這個變化很簡單,我已經放置直接變量初始化使用$超時服務延遲初始化,如提前鍵入停止工作結果

問:

我在做什麼錯?它明確指出,UI-引導的預輸入:works with promises and it means that you can retrieve matches using the $http service with minimal effort

謝謝

回答

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)"> 

這裏是一個工作plunk:http://plnkr.co/edit/RAkzX0UoWHVLUOZ6jEyA?p=preview

你在被過濾的承諾中編寫表達式的方式。

+0

良好的信息,這也解決了我的問題,但它似乎完全反對什麼ui bootstrap文檔說。 –