为什么在更改查询参数时执行完整路由转换时会抛出TransitionAborted错误?
我正在处理" Opt-in to full transition via refresh()"示例提供在查询参数Ember guide(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异常是否正常。如果任何人都可以通过某种方式确认,那么这对于解决我的问题的根本原因非常有帮助,无论它们是什么。
答案 0 :(得分:0)
我今天也遇到了这个问题。我使用的是Ember 1.11.1和Ember-data 1.1.1-beta.16.1。
在我的情况下,查询参数的更改不会影响模型的数据,但会影响另一个查询。所以我最终做的是从路由代码中的参数中删除refreshModel: true
,并在控制器上为该URL参数添加了一个观察者。因此,当控制器检测到该queryParam变量发生了变化时,控制器调用了我需要重新查询我的辅助模型的函数。
如果查询参数与路由模型相关联,我不确定这是否可以解决问题,因为我还没有在我的代码中尝试过。它看起来像上面评论中的github链接,在某个地方有一个确认的错误,所以我很好奇它将如何结束。
布赖恩