1

私はかなり長い間バックボーンを使用してきましたが、独自のイベントと動作を持つビューの動的リストを取得するたびに、それらをどのように保存するべきか疑問に思います。私には2つの方法があり、それらについての私の考えは..

  1. ビューを別のビューに内部的に保存します。これには適切なフィルタリングのオーバーヘッドが必要ですが、DOM からは独立しています + メモリ使用量が改善される可能性があります
  2. ビューを生成し、それらをDOMに配置し、jqueryでビューのイベントをトリガーするだけです$('#someviewid').trigger('somecustomfunction');-書き込みとアクセスは簡単ですが、依存関係がわかりにくく、DOMノードを削除するだけでビュー/モデルが削除されるかどうかはわかりません

あなたは何をお勧めします?

新しいビューが内部 html に追加されるだけで、storyViews 自体は忘れられます。しかし、このリストから特定のビューにアクセスしたい場合は、id や data などの DOM 属性を使用してから、jquery アクセサーでビュー関数をトリガーする必要があります

Devclub.Views.StoriesList = Backbone.View.extend({
    initialize: function () {
        this.collection.bind('reset', this.reset, this);
        this.collection.fetch();
    },

    reset: function (modelList) {
        $(this.el).html('');
        var me = this;

        $.each(modelList.models, function (i, model) {
            me.add(model);
        });
    },

    add: function (model) {
        var contact_model = new Devclub.Models.Story(model);
        var view = new Devclub.Views.Story({
            model: contact_model
        });

        var storyView = view.render().el;

        $(this.el).append(storyView);
    }
});

対照的に、いくつかのビュー メソッドを直接呼び出したい場合は、代わりに同じビュー リストを配列に格納し、それを反復処理することができます。

4

1 に答える 1