所以我的readingController第一次在主体中调用getRomanization,然后又调用Romanize工厂服务(如下所示的控制器)。这一切都在第一次正常工作,但第二次在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;
}
};
}]);
答案 0 :(得分:2)
您对getRomanize的第二次调用缺少服务名称作为参数
$scope.checkRomanization = function(userRomanization){
if ($scope.romanized === userRomanization){
$scope.questionNumber++;
$scope.getRomanization(Romanize);
};
};