0

所以我的 readingController 第一次在主体中调用 getRomanization ,然后它又调用 Romanize 工厂服务(如下所示控制器)。这一切都在第一次正常工作,但第二次在 checkRomanization 结束时调用 getRomanization 时,罗马化服务出现undefined在 Chrome 中。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;
        }
    };
}]);
4

1 回答 1

2

您对 getRomanize 的第二次调用缺少服务名称作为参数

$scope.checkRomanization = function(userRomanization){
    if ($scope.romanized === userRomanization){
        $scope.questionNumber++;
        $scope.getRomanization(Romanize);
    };
};
于 2013-04-25T19:09:07.920 回答