Backbone集合更改后刷新jQuery dataTable

时间:2013-05-09 16:55:31

标签: jquery backbone.js datatables

我有一个View,它使用render函数中的模板创建dataTable的行:

render: function(){

    this.collection.fetch({async:false});
    var tmpl = _.template(this.template);
    var that = this;
    _.each(this.collection.toJSON(), function(item) {
        $(that.el).append(tmpl(item));
    });

    return this;
 },

在此之后,我将数据表初始化为:

  $("#idTable").dataTable();

我有另一种观点,在修改/添加集合的模型之后调用另一次此渲染重绘数据表。 修改/添加的行在表格中正确显示,但如果我使用分页或搜索框,则修改/添加的行将消失并显示为旧行。

如何刷新dataTable ???

我发现只有这样:How do I tell dataTables to check for updated data in a backbone collection?,但我需要使用Undercore的模板创建数据表。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

我通过删除每次而不仅仅是表来解决它,甚至是围绕它创建jQuery的包装器div,每次都用新集合重新绘制整个表。

我在这里找到了解决方案:How to refresh DataTables

 If doing a complete reload of the whole table, wrap your initial datatables 
 initialization code in a function. Call that function on page load. When replacing
 the table completely with ajax you likely should remove the table parent div that is
 created by plugin as a wrapper for all the non table DOm elements it creates. 
 If table ID="example" , wrapper id="example_wrapper".

感谢!!!