我在控制器中这样声明了一个对象数组
vm.reviews = [];
接下来,我有一个函数,该函数调用服务以从这样声明的数据库中加载所有对象
vm.loadAllReviews = loadAllReviews;
function loadAllReviews() {
Review.query({
}, onSuccess, onError);
function onSuccess(data) {
vm.reviews = data;
console.log(vm.reviews.length); //Shows 7
}
function onError(error) {
AlertService.error(error.data.message);
}
}
我想遍历另一个函数中的评论,但是,在该函数中调用loadAllReviews之后,它表明vm.reviews的长度实际上为0,因此无法使用。该功能看起来像这样
function testLocatii() {
loadAllReviews();
console.log(vm.reviews.length); //Shows 0
for (var i = 0; i<vm.reviews.length;i++) {
console.log("suntem in for");
vm.locations.push(vm.reviews[i].coordonateLocatie);
}
}
为什么vm.reviews数组突然变空了?我还想指出,如果我尝试在页面中显示vm.reviews数组的内容并在HTML中使用ng-repeat,它会完美运行。那么,当我尝试在该函数中使用它时,为什么它为空?
P.S。我提到我对vm.reviews不做任何其他类型的操作(切片,排序或其他操作)