事件处理程序的奇怪行为

时间:2013-11-03 12:08:58

标签: httprequest dart

Dart新手。

我正在开发一个模拟遗产Guess Animal程序的简单Dart程序:用户想到一只动物,程序试图通过询问Y / N问题猜测它。

我使用Symfony开发了我的后端和一些简单的RESTful接口,它在浏览器中运行良好。我现在正在使用Dart来开发前端。代码如下所示。

现象:

  1. 单击“新建”按钮可以正常工作。 getNextQuestion(questionId)被正确调用,getNextQuestionComplete也正确地显示了答案的问题和选择(是/否)。
  2. 单击YES链接并使用正确的问题ID调用getNextQuestion(),但req对象的状态为0,而不是200.
  3. 任何提示?

    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;
    }
    

0 个答案:

没有答案