我正在编写一个简单的Backbone.js代码,它基于从JSON提取的配置创建练习。在视图中创建新集合 - Backbone.js
的流程现在是:
- 一些种类在我的代码获取JSON文件(jQuery的)控制器。
- 我创建了描述模型(基于我的JSON文件的一部分),以及通过迭代JSON文件中'answers'数组中的所有项目并将它们添加到集合中的答案集合。
- 我创建视图,基于模型&集合。
所有这一切都说明,并在this topic
这是我的JSON文件的一部分,这是一个锻炼的配置解决。
"config": {
"id": "myWomiExercise1",
"type": "",
"numberOfSets": 0,
"numberOfPresentedAnswers": 3,
"numberOfCorrectAnswerInSet": 1,
"randomAnswers": true,
"exerciseTrueFalseType": false
},
这意味着,我可以具有例如在我的JSON 30分的答案,并有将被随机选择的(通过使用下划线的方法,有可能),以示3(其中一个是正确的)。
我通过配置新的景观,并有机会获得它通过向视图
initialize: function(options) {
this.options = options || {};
}
而且比,我需要创造,为我的配置说(“randomAnswers”:真)组新答案。 正如谷歌说,我可能需要创建一个新的集合使用下划线方法,通过组合其中几个 - 因为我需要的是,集创建将有x答案介绍,其中和将是正确的,和xy不正确,并且finnaly,随机。 由于链接不适用于'where',我想知道做这件事的最好方法是什么?我的想法,这看起来很可怜的看法是有这样的:
randomAnswerSet: function(config) {
var correct = config.numberOfCorrectAnswerInSet;
var wrong = config.numberOfPresentedAnswers - correct;
var set = [];
set.push(
_.sample(this.collection.getCorrect(), correct)
);
set.push(
_.sample(this.collection.getWrong(), wrong)
);
this.collection = new AnswersCollection(_.shuffle(_.flatten(set)));
},
而另一个问题,我应该创建一个新的集合,这样randomAnswerSet中查看和比正常渲染这一观点?或者有更好的方法来做到这一点?因为我需要一个控制按钮'新的示例',它将重新创建集合(因为所有东西都是随机的,它应该提供全新的集合),但是我需要销毁旧集合吗?当用户点击一次按钮10次会有很多收集,这是最佳的吗?
感谢大家,祝你有美好的一天!
关于正确答案的第一部分 - 为什么? – user1854236
用户看到第一组可能的答案:AXB(其中X是正确的答案)。他点击以获得一个新的例子,并看到XCD。由于每次显示X并且只能有一个正确的答案,他知道X是答案。 –
Yeap,但可以有多个正确的答案,因为getCorrect()返回的数组中的所有答案'正确'在集合中是真实的,我是对不对?:) 顺便说一句,感谢您的回答,我会测试这在第二个:) – user1854236