为什么在更改查询参数时执行完整路由转换时会抛出 TransitionAborted 错误?
我正在处理查询参数 Ember 指南 (Opt-in to full transition via refresh()) 底部提供的“http://emberjs.com/guides/routing/query-params/”示例。
我所做的唯一更改是记录错误:
Ember.RSVP.configure('onerror', function(error) {
Ember.Logger.assert(false, error);
});
这是更新后的 JS Bin:http://jsbin.com/rerido/1/edit?console,output
如果您单击“更改它”按钮,您将在控制台中看到一个 TransitionAborted 错误。
一段时间以来,我一直在尝试将我的应用程序中的 Ember 从 1.7.0-beta.1+canary 升级,但是当我一起运行它们时,我的许多 QUnit 测试都失败了。如果我单独运行它们,我的大多数测试都很好。我怀疑 TransitionAborted 错误可能导致测试失败。但是,我不确定在执行完全转换时 TransitionAborted 异常是否正常。如果有人能以一种或另一种方式确认,那将非常有助于找到我的问题的根本原因,无论它们是什么。
最佳答案
我今天也遇到了这个问题。我正在使用 Ember 1.11.1 和 Ember-data 1.1.1-beta.16.1。
在我的例子中,查询参数的更改不会影响模型的数据,但会影响另一个查询。所以我最终做的是从路由代码中的参数中删除 refreshModel: true
,并在 Controller 上为该 URL 参数添加了一个观察器。因此,当 Controller 检测到该 queryParam 变量发生变化时, Controller 会调用我需要的函数来重新查询我的辅助模型。
如果查询参数绑定(bind)到路由模型,我不确定这是否会解决问题,因为我还没有在我的代码中尝试过。从上面评论中的 github 链接看来,某处有一个已确认的错误,所以我很好奇这将如何结束。
布莱恩
关于javascript - 使用新查询参数执行完整路由转换时,Ember TransitionAborted,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25735022/