2

バックボーンにコレクションがあります...これを行っているinitializeメソッドで...このコレクションにアイテムが追加されたときにビューを再レンダリングしたいと思います。

initialize: function (models, options) {

        this.bind('add', function () {
            NS.discussionView.reRender();
        });
    }

このソリューションは完全に機能しますが、mycoworkerは、バックボーンが実行するように設計されたものに完全に反対していると言います。これを行うためのより良いアプローチはありますか、それともこれは大丈夫ですか?質問は少し主観的ですが、実際には、このようなことを正しく行う方法を知りたいと思います。フィードバックやアドバイスをありがとうございます。

答えに答える...まあ、オブジェクトモデルはもっと深いです。DiscussionViewには、トピックモデルのバックボーンコレクションであるtopicsプロパティを持つdiscussionModelがあります。各トピックには、返信モデルの返信コレクションがあります。トピックに返信が追加されたら、ディスカッションビューを再度レンダリングする必要があります。そのチェーンを正しく設定するにはどうすればよいですか?

4

1 に答える 1

3

依存関係を単純に逆にします。ビューはモデルに依存する場合と依存する必要がありますが、その逆はありません。このようにして、単一のモデルを複数のビュー(単純、詳細など)で使用でき、モデルを変更せずにビューを追加できます。

model.bind('add', function () {
    this.render();
});

またrender()、Backbone.jsの命名規則に従うメソッド名を優先します。

于 2011-12-12T22:31:57.523 に答える