javascript – PyBossa加载和呈现任务

前端之家收集整理的这篇文章主要介绍了javascript – PyBossa加载和呈现任务前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
(这是我在Stackoverflow上的第一个问题,所以我希望我这样做.)

我试图通过使用PyBOSSA框架在CrowdCrafting.org上建立一个项目.
我跟着tutorial进行了项目开发.
第一部分对我来说非常清楚,创建项目并添加任务工作正常.
然后我构建了自己的html网页,向用户展示任务.现在,下一步是从项目中加载任务,将它们呈现给用户,并保存他们的答案.
不幸的是,我不明白该怎么做.
我会尝试制定一些问题,让你了解我的问题:

>我怎么试试呢?唯一的方法似乎是更新代码然后运行pbs update_project
>我在哪里可以找到PyBossa.js的文档?我刚看到(在教程和其他页面中)有一些函数,如pybossa.taskLoaded(function(task,deferred){});和pybossa.presentTask(function(task,deferred){});.但我不知道它们是如何工作的以及还有什么.这个page看起来会包含一个文档,但它没有(断开链接或空索引).
>我如何使用该库?我想a)加载任务,b)将其呈现给用户,c)向用户显示他的进度,以及d)发送答案.所以我想我必须调用4种不同的功能.但我不知道怎么做.

我期待着您的任何信息.

编辑:4.看看示例项目的代码,我不明白这个关于加载disqus的东西是什么.我认为disqus是一个论坛软件,但我不确定,我不知道这与我的项目(或他们的)有什么关系.

编辑:
据我所知,JS库的基本部分是:

pybossa.taskLoaded(function(task,deferred) {
  if ( !$.isEmptyObject(task) ) {
    deferred.resolve(task);
  }
  else {
      deferred.resolve(task);
  }
  });

  pybossa.presentTask(function(task,deferred) {
  if ( !$.isEmptyObject(task) ) {
      // choose a container within your html to load the data into (depends on your layout and on the way you created the tasks)
      $("#someID").html(task.info.someName);
      // by clickin "next_button" save answer and load next task
      $("#next_button").click( function () {
    // save answer into variable here
    var answer = $("#someOtherID").val();
    if (typeof answer != 'undefined') {
       pybossa.saveTask(task.id,answer).done(function() {
       deferred.resolve();
       });
    }
      });
   }
  else {
      $("#someID").html("There are no more tasks to complete. Thanks for participating in ... ");
  }
  });

  pybossa.run('<short name>');

解决方法

我会尽力逐一回答你的观点:

>您可以运行pbs更新项目或转到项目页面>
任务>任务演示者并在那里编辑代码.
>我相信this链接工作,你应该找到
你想要的信息.
>所以,一旦你创建了项目并添加了任务和
演示者(您构建的HTML)应该包含Javascript
演示者本身内部的代码.你实际上只需要写
这两个函数:pybossa.taskLoaded(function(task,task)
延迟){});和pybossa.presentTask(function(task,deferred){});

在第一个内容中,你必须写下你想要发生的事情
一旦任务已加载但在您准备好呈现之前
用户(例如加载与任务相关的附加数据,
除了任务本身,就像来自外部网站的图像).一旦
这样做,你必须调用deferred.resolve(),这就是方法
告诉pybossa.js我们完成了任务的负载
(如果它已经成功或发生了一些错误).

之后,您必须为第二个编写回调(pybossa.presentTask)你为你的任务设置了一切,就像按钮答案提交的事件处理程序一样,这里是你应该把用户的逻辑放在哪里完成任务本身,然后你应该在哪里调用pybossa.saveTask().再次,你应该在最后调用deferred.resolve()来告诉pybossa.js用户完成此任务并显示下一个任务.一世会建议你在回调内做pybossa.saveTask(task).done(callbackFunc()),所以你确定你一旦当前的任务正确进行,继续下一个任务保存.>你可以忘记讨论代码.这些只是模板提供,其中包含一些允许人们的代码评论任务.为此,使用了Disquss,但它取决于您是否要使用它,因此您可以安全地删除它码.

猜你在找的JavaScript相关文章