我觉得我什么都试过了,但总是做不到。我正在研究一门故事情节360的课程,在使用动词和对象in时,我能够很好地返回语句,但无论我如何尝试并返回特定Agent的语句,我都无法完成查询。
这是我现在的代码-我确实返回了大量的statements...what,我需要知道的是如何让它查询当前学习者的语句以获得匹配。我可以输入他们的名字或mbox,但每次尝试在我的params中传递这些信息都会失败。
任何帮助都是非常感谢的!
var lrs;
var statementFound = false;
var player = GetPlayer();
try {
lrs = new TinCan.LRS(
{
endpoint: "https://cloud.scorm.com/lrs/MYINFO/",
username: "MYINFO",
password: "MYINFO",
allowFail: false
}
);
}
catch (ex) {
console.log("Failed to setup LRS object: ", ex);
// TODO: do something with error, can't communicate with LRS
};
var myObj = JSON.parse(getParameterByName('actor'));
lrs.queryStatements(
{
params: {
verb: new TinCan.Verb(
{
id: "http://adlnet.gov/expapi/verbs/answered"
}
)
},
callback: function (err, sr) {
if (err !== null) {
console.log("Failed to query statements: " + err);
// TODO: do something with error, didn't get statements
return;
}
if (sr.more !== null) {
// TODO: additional page(s) of statements should be fetched
}
if (sr.statements.length > 0) {
statementFound = true;
console.log(sr.statements);
player.SetVar("sf",statementFound);
}
}
}
);如果需要的话,var myObj能够引入必要的信息来识别学习者--但我还是不知道如何在查询中传递这些信息。
发布于 2020-06-25 23:42:21
您需要在传递给第一个参数的params对象中设置agent属性。假设代理是语句中的actor。
lrs.queryStatements(
{
params: {
agent: TinCan.Agent.fromJSON(getParameterByName('actor'))
}
},
...
);https://stackoverflow.com/questions/62567192
复制相似问题