javascript - 使用新查询参数执行完整路由转换时,Ember TransitionAborted

标签 javascript ember.js

为什么在更改查询参数时执行完整路由转换时会抛出 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/

相关文章:

javascript - AJAX 响应包装器

javascript - 处理路由时出错 : Cannot read property 'connectOutlet' in Ember. js

javascript - EmberJs 添加函数的返回字符串作为类名

Ember.js:加载相关的多个模型

javascript - Ember-cli require ("my_app/app") ["default"].create 不是函数

javascript - 签名脚本进行跨域查询

javascript - Pagedown 使用类属性而不是 id

jquery - Ember.js 对 JQuery 的依赖无法通过 Rails 得到满足

javascript - 如何检测网页元素是否不可见?

javascript - Node.js,获取找不到模块 'ws'错误