【发布时间】:2014-04-24 18:14:40
【问题描述】:
范围变量 $scope.quizArray 在从控制器访问时显示为未定义。下面的代码块肯定是读取的,因为我之前已经在其中进行了测试。
app.factory('getQuizService', function($http){
return {
getQuiz:function(videoId,scope){
var $promise=$http.post("http://localhost/PHP/getQuiz.php", {'videoId': videoId});
$promise.then(function(msg){
scope.quizArray = "TEST";
});
}
}
});
控制器代码 - 服务被调用:
function getQuizList(){
getQuizService.getQuiz(videoIdService.getId(),$scope);
alert($scope.quizArray);
}
但是警报产生的结果是“未定义”而不是“测试”
谁能看到我哪里出错了?任何帮助,将不胜感激。谢谢
【问题讨论】:
-
这是使用承诺,但你没有,所以当你提醒它没有定义时,quizArray 仅在承诺解决时设置为 TEST。
标签: javascript angularjs global-variables scope single-page-application