0

Angular.js サービス コールバックの値を配列にプッシュしようとしています。どんな助けでも大歓迎です。ありがとう。

$scope.checkAddonDependencies = function(addon) {
    var addons = new Array();
    var arr = filterFilter($scope.addons, {checked: true});
    var length = arr.length, element = null;

    for (var i = 0; i < length; i++) {
        element = arr[i]['addoncode'];
        addons.push(element); //works fine

        myService.addon_dependencies(arr[i]['addoncode']).then(function(dependency) {
             addons.push(dependency); //not working
        });

    }

    console.log(addons);    
}
4

1 に答える 1

0

基本的に、次のようにコールバックで値を処理する必要があります。

myService.addon_dependencies(arr[i]['addoncode']).then(function(dependency) {
    addons.push(dependency); 
});

アップデート

関数のコールバックthen()は非同期であるためconsole.log(addons)、コードの順序で何かが表示される保証はありません。

于 2013-08-12T19:39:47.497 に答える