用AngularJS的时候为何我读不到service中的数据?各种抓脑袋中

CuGBabyBeaR 2013-12-30 11:26:56
刚开始学AngularJS 跟着官网的Guide照葫芦画瓢,做一个问答的应用
后端已经测试过没问题了,service也能正确获取到服务器返回的json对象
但是module为何不能读取service中的数据?

AngularJS 版本为 1.2.4
部分html代码 :

<div class="content" ng-app="quizapp">
<div class="quiz_container" ng-controller="QuizCtrl as ctrl">
<div class="question" ng-bind="ctrl.quizlist[ctrl.index].q">问题</div>
<div class="opt" ng-repeat="a in ctrl.quizlist[ctrl.index].a" ng-bind="a" ng-click="ctrl.check($index)">选项</div>
</div>
</div>

js:

angular.module('DataService',[])
.factory('quizGetter', ['$http', function ($http) {
var URL_PATTERN = "..."; //实际上填的是真实的地址
var quizlist = [];
getnew();
return {
quizlist:quizlist,
getnew:getnew
};
function getnew(){
var url = URL_PATTERN.
replace('ARGLIST', grouplist.join(','));//生成URL
return $http.get(url).success(function(data) {
this.quizlist = data;
console.log(this.quizlist); //获得到的数据正常显示了
}).error(function(data, status, headers, config){
console.log("Fail");
this.quizlist = []
});
}
}]);

angular.module('quizapp', ['DataService'])
.controller('QuizCtrl',['quizGetter', function(quizGetter){
this.index = 0;
this.quizlist = quizGetter.quizlist;
this.check = function(i){
console.log("i = " + i + " c = " + this.quizlist[this.index].c);
if (i == this.quizlist[this.index].c) {
console.log("correct!");
}else{
console.log("wrong!");
};

if (this.index >= this.quizlist.length - 1) {
console.log("finish");
}else{
this.index ++;
};
};
this.showlist = function(){
alert(this.quizlist)
}
}]);

this.quizlist = quizGetter.quizlist; 这样不是应该能把获取到的数据绑定到controller里了么?
为什么显示不了?
...全文
113 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧