在Backbone.js中绑定重置

时间:2013-04-06 04:50:55

标签: javascript backbone.js

我正在尝试在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);

2 个答案:

答案 0 :(得分:1)

如果您使用的是主干1.0.0,则应将reset:true传递给重置。此外,它只会set收集的模型update

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

确保来自url的响应是有效的json。只有在成功时才会触发reset事件。

答案 1 :(得分: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  );