これが私の状況です。「質問」コレクション内に「質問」モデルがたくさんあります。
質問コレクションは、SurveyBuilder ビューによって表されます。
質問モデルは、QuestionBuilder ビューによって表されます。
したがって、基本的に QuestionBuilder ビューの UL があります。UL には jQuery ソート可能ファイルが添付されています (質問を並べ替えることができます)。問題は、並べ替えが完了したら、モデルの変更された「question_number」を更新して、その位置を反映したいということです。
Questions コレクションには「question_number」のコンパレータがあるため、コレクションをソートする必要があります。ここで、UL の .index() に question_number を反映させる方法が必要です。何か案は?
別の問題は、質問を削除することです。すべての質問番号を更新する必要があります。今、私はそれを使用して処理します:
var deleted_number = question.get('question_number');
var counter = deleted_number;
var questions = this.each(function(question) {
if (question.get('question_number') > deleted_number) {
question.set('question_number', question.get('question_number') - 1);
}
});
if (this.last()) {
this.questionCounter = this.last().get('question_number') + 1;
} else {
this.questionCounter = 1;
}
しかし、それを行うにはもっと簡単な方法が必要なようです。
理想的には、コレクションで remove が呼び出されるか、ビュー内の UL で sortstop が呼び出されるたびに、各 QuestionuBuilder ビューの .index() を取得し、そのモデルの question_number を .index() + 1 に更新し、save( )。