Я создаю приложение AngularJs с помощью Yammer JS SDK. Текущее приложение вызывает службу API отдыха автозаполнения Yammer и использует библиотеку Typeahead Angular-UI Bootstrap для заполнения результатов автозаполнения на веб-странице. К сожалению, я получаю ошибку длины из библиотеки Typeahead, поскольку она пытается найти массив в возвращаемой функции. Я знаю, как вернуть массив результатов как обещание, используя службу AngularJS $http, но я не мог понять, как реализовать то же самое, используя вызов yam.platform.request. Ниже приведен исходный код метода, который я вызываю для автоматического завершения.
$scope.autoComplete = function (val) {
var users = [];
yam.platform.getLoginStatus(
function(response) {
if(response.authResponse){
return yam.platform.request({
url: "autocomplete/ranked",
method: "GET",
data: {
"models":"user:15",
"prefix": val
},
success: function (response) {
if (response.user) {
users = [];
angular.forEach(response.user, function(user){
users.push(user);
});
return users;
};
},
error: function (error) {
users = [];
console.error(error);
return users;
}
});
}
});
};
Я получаю следующую ошибку в ответе,
TypeError: Cannot read property 'length' of undefined