更改数据后,Ember数据表无法重绘

时间:2017-11-23 14:37:47

标签: javascript ember.js datatables ember-addon

我正在使用基于jquery ember-datatablesDatatables插件。我按照他们的指导创建了一个数据表。

但是我会在一段时间后重新绘制表的数据并重新绘制表格。重绘表不会删除以前的数据。

以下是我创建的Ember twiddle。我也在下面添加代码。

模板/ application.hbs

<h1>Please find data table below</h1>
{{outlet}}
{{#data-table id="myTable"}}
  <thead>
    <tr>
      <th>Name</th>
      <th>Salary</th>
      <th>Position</th>
    </tr>
  </thead>
  <tfoot>
    <tr>
      <th>Name</th>
      <th>Salary</th>
      <th>Position</th>
    </tr>
  </tfoot>
  <tbody>
    {{#each data1 as |data|}}
        <tr>
        <td>{{data.name}}</td>
        <td>{{data.salary}}</td>
        <td>{{data.position}}</td>
      </tr>
    {{/each}}
  </tbody>
{{/data-table}}

路由/ application.js中

import Ember from 'ember';

export default Ember.Route.extend({
  setupController: function() {
    Ember.run.later(this, function() {
      this.controller.set('data1', [{
        'name': 'John Smith 1',
        'salary': '$2000',
        'position': 'developer'
      }, {
        'name': 'Alex 1',
        'salary': '$2000',
        'position': 'developer'
      }, {
        'name': 'Leonardo 1',
        'salary': '$2000',
        'position': 'developer'
      }]);

      var api = new $.fn.dataTable.Api('#myTable');
      api.row.clear();

      api.draw();

    }, 5000);
  }
});

控制器/ application.js中

import Ember from 'ember';

export default Ember.Controller.extend({
  appName: 'Ember Twiddle',
  data1: [{
    'name': 'John Smith',
    'salary': '$2000',
    'position': 'developer'
  }, {
    'name': 'Alex',
    'salary': '$2000',
    'position': 'developer'
  }, {
    'name': 'Leonardo',
    'salary': '$2000',
    'position': 'developer'
  }]
});

1 个答案:

答案 0 :(得分:0)

您将获得TypeError: api.row.clear is not a function.

api.row.clear()更改为api.clear()正在解决您的问题。

考虑避免使用评论中提到的这个插件。