一周前,我在emberjs和DataTables上遇到了问题。
我使用余烬数据使用基于路由参数的网络方法从 asp 代码隐藏中获取数据。然后,我将使用该数据创建一个包含数据表的表。但是,当我更改路由时,这会更改数据并因此更改 html,数据表将添加行,但不会删除旧行。此外,没有任何功能适用于新行,每当我进行排序时,它都会删除新数据。
如果有人有比我发布的答案更好的答案,请告诉我。
我看了很多关于这个主题或类似主题的问题;然而,所有的解决方案都是黑客或昂贵的性能。所以我找到了自己的。
它并不完美;我希望余烬能够基于此实现一个事件。
我最初添加了一个控制器,用于在我的应用程序视图中导航。更改事件大致如下所示:
paramsChanged: function () {
if (this.type && this.filingType.value && this.year && this.period) {
this.transitionToRoute('application');
Ember.run.next(this, function () {
this.transitionToRoute(this.type.value, this.year, this.period);
});
//console.log('persist');
}
}.observes('type', 'year', 'period')
这是将路由更改为应用程序(基本上删除子视图),然后移动到我接下来需要的任何路由。
性能成本虽然未经测试,但应该可以忽略不计。无论如何,我都需要运行代码来创建视图,并且我已经在应用程序中。我通过转换到索引来破坏一点额外的东西,然后在下一个运行循环中重新创建子视图,导致运行 didInsertElement 中包含的初始化代码。