Angularjs 返回每个数据,而不仅仅是键入的数据
我使用ui.bootstrap typeahead作为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) {
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}]