我正在尝试使用带有Angular-ui引导程序的typeahead指令,如下所述: http://angular-ui.github.io/bootstrap/#/typeahead
我的最终目标是进行$ http调用以返回一个对象数组。我有这个工作得很好,但我无法让orderBy或limitTo过滤器工作。
我使用以下承诺复制了类似的结果: http://plnkr.co/edit/AFPjWArALkZU5ImzgobG?p=preview
两个结果都应按状态名称降序排序,但只有对象填充的结果实际上是这样做的。
我的问题是我是否遗漏了某些东西,或者这是否是已知的限制?有没有解决方法?我知道我可以在承诺后使用“then”在控制器中进行排序,但这看起来有点笨重。
答案 0 :(得分:0)
你写它的方式是使一个过滤器作用于承诺本身,而不是承诺的结果。在这种情况下,正确的方法是在JavaScript中进行实际过滤,如下所示:
$scope.getStates = function(val) {
return $timeout(function(){
return orderByFilter(filterFilter($scope.statesWithFlags, val), 'name', true);
}, 500)
};
作为旁注:$timeout
服务API已基于承诺,因此无需明确使用$q
。