您好,我正在使用 angularjs 开发 Web 应用程序。我正在尝试在 angularjs 中查询数组。下面是我的代码片段。
var angulararray = [];
bindleaselistings.bindleaselistingsmethod().then(function(response) {
angular.forEach(response.data.data.LeaseList, function(value, key) {
angulararray.push(value);
});
}, function(error) {});
console.log(angulararray);
debugger;
var found = $filter('filter')(angulararray, {
id: accountnumber
}, true);
if (found.length) {
$scope.selected = JSON.stringify(found[0]);
} else {
$scope.selected = 'Not found';
}
当我调试 var found = $filter('filter')(angulararray, { id: accountnumber }, true);
我可以看到 angulararray 是空的。我可以知道我在上面的代码中做错了什么吗?任何帮助,将不胜感激。谢谢
最佳答案
问题在于您的代码的异步执行。您的 API 调用及其下方代码的执行将并行执行。 angulararray
的值在 API 调用之外为空。您可以将过滤移到 API 的成功回调中。
var angulararray = [];
bindleaselistings.bindleaselistingsmethod().then(function(response) {
angular.forEach(response.data.data.LeaseList, function(value, key) {
angulararray.push(value);
});
var found = $filter('filter')(angulararray, {
id: accountnumber
}, true);
}, function(error) {});
console.log(angulararray);
if (found.length) {
$scope.selected = JSON.stringify(found[0]);
} else {
$scope.selected = 'Not found';
}
关于javascript - 无法在angularjs中查询java脚本数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45612961/