jqueryとbackbone.jsのWebアプリを開発しています。
1つのコンポーネントにはhtmlテーブルがあり、このテーブルの背後にはbackbone.jsコレクションがあります。
このコレクションを変更すると、htmlテーブルが更新されるはずなので、次のように記述します。
this.collection.bind("reset add remove", this.renderRows, this);
そのため、コレクション全体が新しくなったとき、新しいモデルが追加されたとき、モデルが削除されたときに、htmlテーブルを更新します。
ユーザーがhtmlテーブルの特定の行にカーソルを合わせてクリックしたときに呼び出される詳細ビューコンポーネントもあります。このコンポーネントの最初に、コレクションから適切なモデルを取得します
changeModel = this.collection.get(id);
ユーザーがいくつかの属性を変更した後、私は
changeModel.set(attrs);
htmlテーブルに戻ります。コレクション内のモデルには、正しい変更された値があります。
ただし、3つのイベント(リセット、追加、削除)のいずれもトリガーされなかったため、htmlテーブルは更新されません。
そこで、コレクションバインディングに「replace」を追加しました
this.collection.bind("replace reset add remove", this.renderRows, this);
詳細ビューから戻る前に、
this.collection.trigger("replace");
私の解決策は機能しますが、私の質問は次のとおりです。
すでに存在し、見逃していて、自分で何かをトリガーする必要がない「ネイティブ」backbone.jsソリューションはありますか?