2013-04-25 54 views
0

後,所以我readingController在主體調用getRomanization第一次,它反過來調用使羅馬工廠服務(如下所示控制器)。這一切都可以正常工作,但是第二次在checkRomanization結束時調用getRomanization時,Romanize服務在Chrome中出現undefined。 Romanize服務會發生什麼?爲什麼它只能成功運行一次?角服務「未定義」第一次運行

請幫我這是我一直堅持的年齡。

var readingController = function ($scope, Romanize){ 
    $scope.getRomanization = function(Romanize){ 
     $scope.currentMaterial = $scope.sections[$scope.sectionNumber].tutorials[$scope.tutorialNumber].material[$scope.questionNumber]; 
     Romanize.get($scope.currentMaterial).then(function(d){ 
      $scope.romanized = d; 
     }); 

     $scope.$apply(); 
    }; 
    $scope.getRomanization(Romanize); 
    $scope.$apply(); 
    $scope.checkRomanization = function(userRomanization){ 
     if ($scope.romanized === userRomanization){ 
      $scope.questionNumber++; 
      $scope.getRomanization(); 
     }; 
    } 
} 

app.factory('Romanize', ['$http', 'Position', function($http, Position){ 
    return{ 
     get: function(query){ 
      var url= Position.sections[Position.sectionNumber].romanizeService + "?korean=" + query; 
      var promise = $http.get(url).then(function(d) { 
       var parts = $(d.data).find("span"); 
       var array = []; 
       for (var x = 0; x<parts.length; x++){ 
        array.push(parts[x].title); 
       } 
       var result = array.join(""); 
       return result; 
      }); 
      return promise; 
     } 
    }; 
}]); 

回答

2

您對getRomanize第二個呼叫缺少服務名作爲參數

$scope.checkRomanization = function(userRomanization){ 
    if ($scope.romanized === userRomanization){ 
     $scope.questionNumber++; 
     $scope.getRomanization(Romanize); 
    }; 
}; 
+0

三江源這麼多克里斯,我無法相信我錯過了一些東西這麼簡單! – Tules 2013-04-25 19:18:14

+0

幾個小時後,我們所有人都會遇到這種情況;} – 2013-04-25 19:18:33