1

backbone.js で単純なコレクションを実行しようとしていますが、(bind で指定された) コールバック関数が呼び出されない理由がわかりません。ドキュメントから理解していることから、fetch() を実行すると、リセット イベントがトリガーされるはずです。助言がありますか?(コードは以下です)。

            Customer = Backbone.Model.extend(
            );
             CustomerList = Backbone.Collection.extend({
                model : Customer,
                url : "test.php",
            });

            var ChartView = Backbone.View.extend({
                el: $('body'),


                initialize: function(){
                    _.bindAll(this, 'render');
                    this.collection.bind("reset", self.render);
                    this.collection.fetch( 
                    );

                },

                render : function() {
                    console.log("render");
                }

            });

            var chartView = new ChartView( { collection: new CustomerList()} );
        })(jQuery);
4

2 に答える 2

1

バックボーン 1.0.0 を使用している場合はreset:true、リセットに渡す必要があります。それ以外の場合setは、以前のコレクションのモデルのみになりますupdate

this.collection.fetch({reset:true});

URL からの応答が有効な json であることを確認してください。resetイベントは成功した場合にのみ発生します。

于 2013-04-06T04:58:29.040 に答える
0

これをチェックしてください。@nikoshr が https://stackoverflow.com/a/16538588/1211174で言ったように。同期イベントがあります。代わりに、同期をキャッチできるたびにバックボーンにコレクションを強制的にリセットさせます

https://github.com/backbone-paginator/backbone.paginator/issues/164

    this.collection.bind("sync", function(){
                         console.log('got sync');
                         this.render(){, this  );
于 2013-07-19T10:19:50.203 に答える