在Javascript中的函数之外将数组清空

时间:2018-07-13 15:41:52

标签: javascript arrays angularjs

我在控制器中这样声明了一个对象数组

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不做任何其他类型的操作(切片,排序或其他操作)

0 个答案:

没有答案