当我尝试使用Promise从AngularUI-Bootstrap获取typeahead值时,出现以下错误。
TypeError: Cannot read property 'length' of undefined
at http://localhost:8000/static/js/ui-bootstrap-tpls-0.6.0.min.js:1:37982
at i (http://localhost:8000/static/js/angular.min.js:79:437)
at i (http://localhost:8000/static/js/angular.min.js:79:437)
at http://localhost:8000/static/js/angular.min.js:80:485
at Object.e.$eval (http://localhost:8000/static/js/angular.min.js:92:272)
at Object.e.$digest (http://localhost:8000/static/js/angular.min.js:90:142)
at Object.e.$apply (http://localhost:8000/static/js/angular.min.js:92:431)
at HTMLInputElement.Va.i (http://localhost:8000/static/js/angular.min.js:120:156)
at HTMLInputElement.x.event.dispatch (http://localhost:8000/static/js/jquery-1.10.2.min.js:5:14129)
at HTMLInputElement.v.handle (http://localhost:8000/static/js/jquery-1.10.2.min.js:5:10866)
我的HTML标签是:
<input type="text" class="form-control" id="guestName" ng-model="name" typeahead="name for name in getTypeaheadValues($viewValue)">
用我的getTypeaheadValues
功能执行以下操作:
$scope.getTypeaheadValues = function($viewValue)
{
// return ['1','2','3','4'];
$http({
method: 'GET',
url: 'api/v1/person?name__icontains=' + $viewValue
}).error(function ($data) {
console.log("failed to fetch typeahead data");
}).success(function ($data) {
var output = [];
$data.objects.forEach(function (person)
{
output.push(person.name);
});
console.log(output);
return output;
});
}
我不明白AngularUI-
Bootstrap抱怨什么是不确定的。如果我删除最顶部的注释,则return
这些值会很好显示。中的console.log
输出success
还返回数组中我期望的所有值。
我缺少什么会导致AngularUI-Bootstrap看不到返回的数组?
这个问题有两个方面。
首先是我没有返回promise事件($http
调用)。缺少return语句(如@tobo所指出的)是直接导致错误的原因。我需要返回诺言,而不是数组。
第二个是我需要使用.then
而不是.success
AngularUI-Bootstrap来获取结果。
我遇到了以下问题: 如何通过$ http将angular-ui的预输入与服务器绑定以进行服务器端优化?
其中将我的函数调用更新为以下内容:
$scope.getTypeaheadValues = function($viewValue)
{
return $http({
method: 'GET',
url: 'api/v1/person?name__icontains=' + $viewValue
}).then(function ($response) {
var output = [];
console.log($data);
$response.data.objects.forEach(function (person)
{
output.push(person.name);
});
console.log(output);
return output;
});
}
(节点:55028)UnhandledPromiserEjectionWarning:TypeError:无法读取位于/users/PatrickStanciu/WebStormProjects/AUTISMAssistant/Backend/API/Controllers/PaymentsController.js:1045:34 位于processTicksAndRejections(inte
因此,我现在使用的代码给了我一个TypeError:无法为我的ping命令读取undefined的属性'send',然后是TypeError:无法为我的ban命令读取undefined的属性'users',由于我做了什么或忘记了做什么,我还有其他命令不能正常工作,代码一直在工作,直到我向代码添加了权限,然后它就走下坡路了,我不知道在权限之前和之后哪里不工作/它是如何工作的,但后来只是停止工作,我不
我基本上是React的初学者。我有一个仪表板页面,其中显示了一个React表。我有一个自定义按钮,它将打开一个弹出页面,这个弹出页面有一些复选框允许我显示/隐藏那些反应列。最初,此弹出页面中的所有复选框都设置为true。当我取消选中某列时,该列将被禁用。 这是我的父组件-父页面是带有ReactTable的页面,现在有10列,而不是像图中所示的8列。 这是我的子组件--在我的子页面(显示复选框的页面
为什么children.length导致未处理拒绝(TypeError):无法读取未定义的属性(读取'length'),特别是因为children.length的值已成功地显示在控制台上?
我正在修改一个现有的Angular项目(不是我的),向我的外部API添加一个新的调用。 这是服务方法: 我把它用在appcomponent.ts如下: 执行时出现以下错误: node_modulesERROR TypeError:无法在node_modules读取null的属性“长度”。/map.js.MapOperator.call/@角/公共/费斯姆5/node_modules更新(_subs
我正试图通过从AsyncStorage获取值来呈现数据数组。但首先调用render,并在我试图映射数组时显示未定义的