Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.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
Angularjs Ui.Bootstrap Typeahead不使用异步调用_Angularjs_Node.js_Sails.js_Angular Bootstrap_Angular Ui Typeahead - Fatal编程技术网

Angularjs Ui.Bootstrap Typeahead不使用异步调用

Angularjs Ui.Bootstrap Typeahead不使用异步调用,angularjs,node.js,sails.js,angular-bootstrap,angular-ui-typeahead,Angularjs,Node.js,Sails.js,Angular Bootstrap,Angular Ui Typeahead,我正在使用ui.bootstrap typeahead进行异步调用。但是,生成的数据似乎没有返回到typeahead指令,因此数据不会出现下拉列表 html是 <input type="text" ng-model="asyncSelected" placeholder="Search Profile" typeahead="username.username for username in getSearch($viewValue)" typeahead-wait-ms="400" cl

我正在使用ui.bootstrap typeahead进行异步调用。但是,生成的数据似乎没有返回到typeahead指令,因此数据不会出现下拉列表

html是

<input type="text" ng-model="asyncSelected" placeholder="Search Profile" typeahead="username.username for username in getSearch($viewValue)" typeahead-wait-ms="400" class="form-control">
响应JSON对象是

Object
@type: "d"
id: "#17:3"
username: "Burt"
__proto__: Object
我在客户端使用角帆来查询后端。我已经用ui.bootstrap文档中给出的示例测试了代码,一切正常

$sails.get还可以作为console.log(item.username)打印出值

我觉得这与getSearch函数中的承诺有关


你知道为什么没有出现下拉列表吗?

我将sails从10.5更新到11。随后,客户端SDK发生了变化(Sails.io),我使用的angular Sails库也需要更新

promise函数已更改,我需要更新它。将promise函数更改为下面的函数修复了该问题。现在,typeahead函数得到响应并显示下拉列表

    return $sails.get("/search/" + val)
        .then(function (response) {
            console.log(response);
            return response.data.map(function (item) {
                return item.username;
            });
        }, function (response) {
            alert('Houston, we got a problem!');
        });

在我的例子中,promise函数正在工作,但是返回数据不知何故没有出现在下拉列表中。但是我用静态数据检查过了,它工作得很好。
    return $sails.get("/search/" + val)
        .then(function (response) {
            console.log(response);
            return response.data.map(function (item) {
                return item.username;
            });
        }, function (response) {
            alert('Houston, we got a problem!');
        });