Angularjs 返回每个数据,而不仅仅是键入的数据

Angularjs 返回每个数据,而不仅仅是键入的数据,angularjs,twitter-bootstrap,angular-ui-bootstrap,bootstrap-typeahead,Angularjs,Twitter Bootstrap,Angular Ui Bootstrap,Bootstrap Typeahead,我使用ui.bootstrap typeahead作为 uib-typeahead="search as search.name for search in vm.searching($viewValue)" 通过$http.get从数据库获取数据 vm.searching = function() { return $http.get('http://localhost:3000/api/allcoaches') .then(function(response) {

我使用ui.bootstrap typeahead作为

uib-typeahead="search as search.name for search in vm.searching($viewValue)"
通过$http.get从数据库获取数据

vm.searching = function() {
      return $http.get('http://localhost:3000/api/allcoaches')
      .then(function(response) {
        return response.data;       
    }); 
};
search指令如下所示

.component('searchbox',{
    restrict: 'E',
    templateUrl: '/common/searchbox/searchbox.template.html',
    bindings: {
        text: '<'
    },
    controller: 'SearchBoxController',
    controllerAs: 'vm'
});
它只是显示数据中的每个对象,而不仅仅是搜索框中键入的内容。就像我输入“a”一样,它会在下拉列表中返回所有的“a、b、c、d”。
我做错了什么?

您没有在服务中进行任何筛选,您得到的是API/AllCoach。将键入的值传递给服务并获得过滤结果,或者在控制器中进行过滤

如果您在控制器中进行内存过滤,则不必每次都点击服务。您可以一次获取所有Coach(在此方法之外),然后在此方法中执行$filter

但我建议您在api中进行过滤并返回过滤列表


同样,在客户端或api中进行过滤的决定取决于您的业务场景。若数据库中的Coach太多,那个么在api中进行过滤。如果数据量较少,则通过点击api获取所有Coach,将该列表保留在其中一个视图模型属性中,然后从内存列表中进行筛选。

您没有在服务中进行任何筛选,而是获取api/AllCoach。将键入的值传递给服务并获得过滤结果,或者在控制器中进行过滤

如果您在控制器中进行内存过滤,则不必每次都点击服务。您可以一次获取所有Coach(在此方法之外),然后在此方法中执行$filter

但我建议您在api中进行过滤并返回过滤列表


同样,在客户端或api中进行过滤的决定取决于您的业务场景。若数据库中的Coach太多,那个么在api中进行过滤。如果数据量较少,则通过点击api获取所有Coach,将该列表保留在视图模型属性之一中,然后从内存列表中筛选。

感谢隧道中的灯光!我现在可以使用服务中的过滤器来完成。现在又出现了另一个问题。若我从一个下拉框中选择,结果显示它是从那个个体的对象中搜索的。我想我在stackoverflow的某个地方遇到了这个问题。谢谢隧道里的灯光!我现在可以使用服务中的过滤器来完成。现在又出现了另一个问题。若我从一个下拉框中选择,结果显示它是从那个个体的对象中搜索的。我想我在stackoverflow的某个地方遇到了这个问题。
[{"_id":"57bc46dafd7aac680c908072","name":"a","price":3},
{"_id":"57bc46dcfd7aac680c908073","name":"b","price":4},
{"_id":"57bc46f9207a745c2494182c","name":"c","price":5},
{"_id":"57bc4771207a745c2494182d","name":"d","price":6}]