値を返す Angular サービスがあります。その値を配列にプッシュすると、値が実際にプッシュされたことを console.log が示します。しかし、このコールバックの外では、配列はプッシュされた値を表示しません。プッシュされた値でこの配列を保存するにはどうすればよいですか?
$scope.setAddons = function() {
var addons = new Array();
var arr = filterFilter($scope.addons, {checked: true});
for (var i = 0; i < arr.length; i++) {
element = arr[i].addoncode;
addons.push(element);
console.log(addons); // ["A6004"] great!
}
for (var x = 0; x < addons.length; x++) {
var dep = '';
myService.addon_dependencies(addons[x]).then(function(dependency) {
dep = dependency[0].addon_depend;
console.log(dep); // A6002
if(dep != null){
addons.push(dep);
console.log(addons); // ["A6004", "A6002"] great!
}
});
}
myService.addItem('addons', addons); //saving ["A6004"] instead of ["A6004", "A6002"]
console.log(addons); // ["A6004"] just shoot me!
location.path("/rates");
}