我将一个Plunker作为例子http://plnkr.co/edit/ylR1mel46FXTXzdvfHpa?p=preview
分叉在标记中使用内联的promises时如下:
<div class='container-fluid' ng-controller="TypeaheadCtrl">
<pre>Model: {{selected| json}}</pre>
<input type="text" ng-model="selected" typeahead="state for state in getStates($viewValue) | limitTo: 5">
</div>
如果你输入&#34; A&#34;在控制器中,您可以看到limitTo选项被忽略。这有可能以这种方式使用吗?
答案 0 :(得分:2)
您需要在承诺的回调中限制结果。 的 https://github.com/angular-ui/bootstrap/issues/1740 强>
AngularJS过滤器正在同步执行,如果你在getLocation($ viewValue)中编写你的表达式,就像地址一样filter:$ viewValue这部分getLocation($ viewValue)意味着过滤器会过滤一个promise对象(因为过滤器过滤器只能在数组上运行,所以它是noop)。这里正确的方法是在服务器端进行过滤(这是从服务器获得异步结果的重点)。如果您仍想在客户端进行进一步过滤,可以在JavaScript中的promise回调函数中进行。