Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angularjs Typeahead未显示下拉列表_Javascript_Php_Angularjs_Json - Fatal编程技术网

Javascript Angularjs Typeahead未显示下拉列表

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 =

我尝试使用异步typeahead,我可以很好地获取数据,并且检查器清楚地显示返回的数据。例如,我正在使用getLocation的引导示例

这正是我想要的工作方式,这就是我的方法

$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;
});