2016-12-10 7 views
0

私は2つの関数getCharacterInfo(コールバック)とapply()を持っています。コールバックがそれより早く発生する(スタックの平均)

getCharacterInfo(:私はこれが私のコードであるgetCharacterInfoでコールバックとして()適用されますが、(コールバック)を適用します(少なくとも私はコードから伝えることができるものから)以前にそれが必要以上発射

を呼び出していますコールバック)

$scope.getCharacterInfo = function(callback) { 
    temp = $http.get('https://eu.api.battle.net/wow/character/' + $rootScope.current_user_realm + '/' + $rootScope.current_user + '?locale=en_GB&apikey=hidden'); 
    temp.then(function onSuccess(response){ 
     $scope.charInfo = response.data; 
     $scope.charInfo.thumbnail = "https://render-api-eu.worldofwarcraft.com/static-render/eu/" + response.data.thumbnail 
     console.log("$scope.charinfo = " + $scope.charInfo) 
     console.log("response.data = " + response.data) 
     if(callback) { 
      callback(); 
     } 
    }) 
} 

は(適用)

$scope.apply = function() { 
      $scope.newApplication.charName = $scope.charInfo.name; 
      $scope.newApplication.realm = $scope.charInfo.realm; 
      $scope.newApplication.armoryLink = 'http://eu.battle.net/wow/en/character/'+ $scope.charInfo.realm + '/'+ $scope.charInfo.name +'/advanced' 
      console.log($scope.newApplication) 
      applicationsService.save($scope.newApplication, function(){ 
       $scope.applications = applicationsService.query(); 
       $scope.newApplication = null; 
      }); 
    }; 

関数呼び出しがHTML提出フォーム

01から作られています

エラーはapply()にあります。ここでは、$ scope.charInfoが未定義であるとコンソールから通知されています。また、characterInfoのconsole.log()は決して解雇されることはないと思います。

私は間違っていますか?

答えて

2

は括弧なしapply引数を渡す:

<form ng-submit="getCharacterInfo(apply)"> 

そうでない場合、機能applyが、その結果はgetCharacterInfo関数に渡され、最初に実行されます。

+0

これはうまくいきました。頭痛から私を守ってくれてありがとう! – Flux

関連する問題