を使用して調査ロジックを管理しようとしてbackbone.js
います。このアプリケーションは、ユーザーがいつでも質問への回答を開始して続行できるようにすることを目的としているため、進行状況を保存する必要があります。私はQuestion
かなり標準的なモデルを持っています:
App.Models.Question = Backbone.Model.extend({});
次にSurvey
、最後に完了した質問を記憶するオブジェクトが必要です。私の最初の傾向は、ある種の永続性が必要なため、モデルとして作成することでした。
App.Models.Survey = Backbone.Model.extend({
defaults: {
questions: [],
currentIndex: 0
},
currentQuestion: function() { /*...*/ },
nextQuestion: function() { /*...*/ },
prevQuestion: function() { /*...*/ }
});
このアプローチをとるとき、内部の要素にアクセスすると、survey.get('questions')
使用するバックボーンモデルが得られず、プレーンなjavascriptオブジェクトが得られます-バックボーンモデルの配列で明示的に初期化しない限り、追加の解析が必要になり、バックボーンの処理方法がバイパスされますRESTfulJSON。
一方、モデルの代わりにコレクションを使用すると、モデルインスタンスが得られますが、currentIndex
データの管理を目的としていないコレクションの永続性()を保存するのは正しくないようです。だから私は対立しています-調査は基本的に質問のコレクションであるため、を使用するとBackbone.Model
、ユーザーが調査に沿ってどこまで進んだかを保存できますが、を使用Backbone.Collection
すると、より正確に見える方法で質問を管理できます。2つの考慮事項を正しくマージするための適切な妥協点は何ですか?ありがとう。