Javascript Angularjs Typeahead未显示下拉列表
我尝试使用异步typeahead,我可以很好地获取数据,并且检查器清楚地显示返回的数据。例如,我正在使用getLocation的引导示例 这正是我想要的工作方式,这就是我的方法Javascript Angularjs Typeahead未显示下拉列表,javascript,php,angularjs,json,Javascript,Php,Angularjs,Json,我尝试使用异步typeahead,我可以很好地获取数据,并且检查器清楚地显示返回的数据。例如,我正在使用getLocation的引导示例 这正是我想要的工作方式,这就是我的方法 $scope.filterClients =function(val) { var data = $.param({ action: "filter_clients", value: val }); var config =
$scope.filterClients =function(val) {
var data = $.param({
action: "filter_clients",
value: val
});
var config = {headers : {'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'}}
$http.post('http://***************.co.uk/switchboard.php', data, config)
.then(function (response) {
return response.data.map(function(item){
return item.first_name;
});
});
};
HTML代码
您不会从$scope.FilterClient返回任何内容。只需按如下方式更改您的函数:
$scope.filterClients = function (val) {
var data = $.param({
action: "filter_clients",
value: val
});
var config = {headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'}}
return $http.post('http://***************.co.uk/switchboard.php', data, config)
.then(function (response) {
return response.data.map(function (item) {
return item.first_name;
});
});
};
注
最好在返回数据之前确保一切正常,否则可能会出错。尝试以下方法以避免错误:
return $http.post('http://***************.co.uk/switchboard.php', data, config).then(function (response) {
if (!angular.isObject(response) || !angular.isDefined(response.data)) {
/* this you can put to avoid any errors */
return;
}
/* if you want to limit you can use this code */
var limit = 10;
var data = [];
for (var i = 0; i < response.data.length; i++) {
if (i == limit) {
break;
}
data.push(response.data[i]);
}
return data;
});
显示htmlcode@sachilaranawakahtml在http post请求前提供了一个返回,也做得很好,有时这是导致问题的最明显的原因,当它允许时,会标记为答案,再次感谢
$scope.filterClients = function (val) {
var data = $.param({
action: "filter_clients",
value: val
});
var config = {headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'}}
return $http.post('http://***************.co.uk/switchboard.php', data, config)
.then(function (response) {
return response.data.map(function (item) {
return item.first_name;
});
});
};
return $http.post('http://***************.co.uk/switchboard.php', data, config).then(function (response) {
if (!angular.isObject(response) || !angular.isDefined(response.data)) {
/* this you can put to avoid any errors */
return;
}
/* if you want to limit you can use this code */
var limit = 10;
var data = [];
for (var i = 0; i < response.data.length; i++) {
if (i == limit) {
break;
}
data.push(response.data[i]);
}
return data;
});