飞镖新手。
我正在开发一个简单的 Dart 程序来模拟传统的 Guess Animal 程序:用户想到一种动物,程序试图通过询问 Y/N 问题来猜测它。
我使用 Symfony 和一些简单的 RESTful 接口开发了我的后端,它在浏览器中运行良好。我现在正在使用 Dart 开发前端。代码如下所示。
现象:
- 单击“新建”按钮可以正常工作。getNextQuestion(questionId) 被正确调用,getNextQuestionComplete 也正确显示了问题和答案选择 (Y/N)。
- 单击 YES 链接并使用正确的问题 ID 调用 getNextQuestion(),但 req 对象的状态为 0,而不是 200。
有什么提示吗?
Rgds!
泰勒
import 'dart:html';
import 'dart:convert';
int questionId;
int yBranch;
int nBranch;
void main()
{
init();
}
void init()
{
// Hook up event handlers
querySelector("#btnNew").onClick.listen(newGame);
querySelector('#y').onClick.listen(getYBranch);
querySelector('#n').onClick.listen(getNBranch);
}
void getYBranch(Event e)
{
getNextQuestion(yBranch);
}
void getNBranch(Event e)
{
getNextQuestion(nBranch);
}
void newGame(Event e)
{
questionId=1;
yBranch=-1;
nBranch=-1;
querySelector("#lblProgress").text="Game in progress...";
querySelector('#gamearea').style.display="block";
querySelector('#answerlinks').style.display="block";
//Get Root Question
getNextQuestion(questionId);
}
String getNextQuestion(questionId)
{
var path='http://rsywx/app_dev.php/animal/getQuestionByID/$questionId';
var req=new HttpRequest();
req..open('GET', path)..onLoadEnd.listen((e)=>getNextQuestionComplete(req, questionId))..send('');
}
void getNextQuestionComplete(HttpRequest req, qid)
{
if(req.status==200)
{
Map res=JSON.decode(req.responseText);
querySelector('#question').innerHtml=res['q'];
querySelector('#qid').innerHtml=qid.toString();
yBranch=res['y'];
nBranch=res['n'];
}
req=null;
}