获取范围之外的数据

时间:2017-05-30 11:57:18

标签: javascript angularjs arrays scope

我有一点问题,我想在Angular中返回一个带有函数的数组。 我在匿名函数中处理我的数据,当我返回数组时,它是空的。

我不知道该怎么做......

-(void)layoutSubviews {
    [super layoutSubviews];
    [self updateLayerProperties];
}

感谢

EDIT 使用promise但它只返回一个数据

getCurrentExchangeTo : function(year, month, country){
            var numberDayPerMonth = [
                31,
                28,
                31,
                30,
                31,
                30,
                31,
                30,
                31,
                30,
                31,
                30,
            ];

            var vm = this;
            this.country = country;

            this.getCurrentExchangeFor = [];
            var hello = "gello"

            for(var i = 0; i < numberDayPerMonth.length; i++){
                if((i + 1) === month){
                    for(let j = 1; j < numberDayPerMonth[i]; j++){
                        $http.get('http://api.fixer.io/' + year + '-0' + month + '-0' + j +'?symbols=' + vm.country).then(function (success) {
                            let countryDay = vm.country
                            vm.getCurrentExchangeFor[j] = success.data.rates[countryDay];
                        });
                    }
                }
            }
            return vm.getCurrentExchangeFor
        }

1 个答案:

答案 0 :(得分:1)

你需要在这里使用promise,你返回的数组是空的,因为在填充数组之前返回了数组。 由于你有一个for循环和http调用,你已经使用了promise.all功能来确保在返回数组之前已经填充了所有数据。