Backbone で物事を行うには多くの方法があることは知っていますが、私はここで多くの経験を積んでいないので、最善の方法についてアドバイスをお願いします。
データを追加するためのフォームとデータを編集するためのフォームがある基本的な CRUD アプリがありますが、これらは本質的に同じです。そして、実際には同じ DOM 要素に関連付けられています。
したがって、ビューにモデルがあるかどうかに応じて、2 つのフォームを 1 つのビューに含め、適切なテンプレートを提供できます。このようなもの:
var AddEditView = Backbone.View.extend ({
el: $("#add"),
template: $("editTemplate").html();
render: function() {
if (this.model) {
var theTmp = _.template(this.template)
this.$el.html(theTmp(this.model.toJSON()));
}
else {
var theTmp = _.template($("#addTemplate").html());
this.$el.html(theTmp);
}
},
}); これはうまくいくと思いますが、イベントで厄介な問題が発生する可能性があります (つまり、イベントが 2 回バインドされます)。
または、同じ dom 要素にアタッチされ、アプリの状態に応じて前後に切り替わる 2 つの完全に別個のビューを作成することもできます (コードの行数が増えます)。
この状況で皆さんは何をお勧めしますか。ビュー内のロジックが多い方が良いですか、それともコード行が多いほどビュー内のロジックが少ないですか?