Collections 如何在backbone.js中享受持久性和集合的使用?
我正在尝试使用Collections 如何在backbone.js中享受持久性和集合的使用?,collections,backbone.js,persistence,Collections,Backbone.js,Persistence,我正在尝试使用backbone.js管理调查逻辑。该应用程序旨在允许用户开始回答问题并在任何给定时间继续,因此需要保存进度。我有一个非常标准的问题模型: App.Models.Question = Backbone.Model.extend({}); 然后我想要一个调查对象,它能记住最后一个完成的问题。我的第一个倾向是把它作为一个模型来写,因为需要某种持久性: App.Models.Survey = Backbone.Model.extend({ defaults: {
backbone.js
管理调查逻辑。该应用程序旨在允许用户开始回答问题并在任何给定时间继续,因此需要保存进度。我有一个非常标准的问题
模型:
App.Models.Question = Backbone.Model.extend({});
然后我想要一个调查
对象,它能记住最后一个完成的问题。我的第一个倾向是把它作为一个模型来写,因为需要某种持久性:
App.Models.Survey = Backbone.Model.extend({
defaults: {
questions: [],
currentIndex: 0
},
currentQuestion: function() { /*...*/ },
nextQuestion: function() { /*...*/ },
prevQuestion: function() { /*...*/ }
});
当我采用这种方法时,访问survey.get('questions')中的元素不会给我一个主干模型来使用,而是一个普通的javascript对象——除非我使用主干模型数组显式初始化它,这需要额外的解析,并绕过主干如何处理RESTful JSON
另一方面,使用集合而不是模型将为我提供模型实例,但是为集合保存某种类型的持久性(
currentIndex
)似乎是不正确的,因为它不用于管理数据。所以我很矛盾-使用主干。模型
可以让我节省用户在调查过程中的时间,而使用主干。集合
可以让我以一种似乎更正确的方式管理问题,因为调查基本上是一个问题集合。正确地将这两个考虑因素结合起来,有什么好的折衷办法?谢谢。我将保留您的问题模型。我还将创建一个与问题相关的答案模型。因此,它将具有属性id、questionID、userID、answerChoice和timestamp
当用户进入您的调查时,我会获取()他的答案并将其放入答案集合中
因为答案是它自己的模型,所以每次他们回答时,您都可以轻松地将其保存到数据库中
然后,在您的答案集合中,我有一个函数,通过时间戳或问题ID检索您想要的最新答案模型。我想这取决于你到底想要什么
我想这就是你描述的意思,但你认为呢?我会保持你的问题模型不变。我还将创建一个与问题相关的答案模型。因此,它将具有属性id、questionID、userID、answerChoice和timestamp 当用户进入您的调查时,我会获取()他的答案并将其放入答案集合中 因为答案是它自己的模型,所以每次他们回答时,您都可以轻松地将其保存到数据库中 然后,在您的答案集合中,我有一个函数,通过时间戳或问题ID检索您想要的最新答案模型。我想这取决于你到底想要什么 我想这就是你描述的意思,但你觉得呢