1

我的咖啡脚本

Template.shiftDataTable.onRendered ( ->
   App.datatables()
   $('#shift-list-table').dataTable
     pageLength: 10,
     "order":[[0, "asc"]]

   $('.dataTables_filter input').attr('placeholder', 'Search')
)

我的玉模板

.table-responsive
  table#shift-list-table.table.table-vcenter.table-condensed.table-hover
    thead
      tr
        th Shift Code
        th Shift Type
        th Shift Start Date
    tbody
      each shifts
        tr
          td {{code}}
          td {{type}}
          td {{formatDate createdAt}}

问题是当我使用 ironRouter (Router.go, pathFor) 转到此页面时,onRendered 将在渲染之前运行。

4

1 回答 1

0

当这种情况发生在我身上时,我使用Tracker.afterFlush()

Template.shiftDataTable.onRendered ( function () {
  Tracker.afterFlush ( function () {
    App.datatables()
    $('#shift-list-table').dataTable
      pageLength: 10,
      "order":[[0, "asc"]]

    $('.dataTables_filter input').attr('placeholder', 'Search')
  });
});

在重新运行所有无效计算之后,安排在下一次刷新期间调用一个函数,或者如果正在进行中,则在当前刷新的稍后时间调用。除非再次调用 afterFlush,否则该函数将运行一次,并且不会在后续刷新时运行。

参考

于 2015-07-13T10:06:39.573 回答