在 Ember 上运行代码查看参数更改

Run code on Ember view parameter change

一周前我遇到了 emberjs 和 DataTables 的问题。

我使用 ember-data 基于路由参数使用 web 方法从 asp 代码隐藏中获取数据。然后我将使用该数据创建一个 table 和数据tables。但是,当我更改路由时,更改了数据并因此更改了 html,datatables 会添加行,但不会删除旧行。此外,所有功能都不适用于新行,每当我进行排序时,它都会删除新数据。

如果有人的答案比我发布的更好,请告诉我。

我看了很多关于这个主题或类似主题的问题;然而,所有的解决方案都是 hacky 或昂贵的性能。所以我找到了自己的。

它并不完美;我希望 ember 能够基于此实施一个活动。

我最初添加了一个控制器用于在我的应用程序视图中导航。更改事件大致如下所示:

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 中包含的初始化代码为 运行.