javascript - 加载异步路由时出现 Ember 错误

标签 javascript ember.js

我正在从 JSON API 加载数据。我的路由几乎总是需要从服务器获取新数据。我无法控制 API 格式。

我正在尝试使用 Ember Asynchronous Routing guide 中描述的功能.具体来说,我在路由的 model Hook 中返回一个 promise ,这样我就可以延迟转换到路由,直到数据加载完毕(并同时显示加载指示器)。

一切(actions.loadingafterModel 等)似乎都按照指南中的描述工作。但是,每当我转换到以前去过的路线时,我都会收到一个 showstopper 错误。

这个 JSBin 是一个最小的示例,它使用相同版本的 Ember 及其包含在入门工具包中的依赖项:

http://jsbin.com/zorey/1/edit?html,js,output

单击第一个名称,返回,然后单击第二个名称。您会在控制台中看到此错误:

Error while loading route: TypeError: Object #<Object> has no method 'apply'

我做错了什么?

最佳答案

查看您的 jsBin,问题就在这里:

afterModel: function(response, transition) {
    this.set('model', response);
    console.log('DONE LOADING');
}

你不应该在“afterModel” Hook 中设置模型。这不仅没有必要(模型由“模型” Hook 中的返回值设置),而且可能会导致 Hook 模式出现一些困惑的问题。

只需删除

this.set('model', response);

线,你应该是金色的。

关于javascript - 加载异步路由时出现 Ember 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21740125/

相关文章:

ember.js - 如何测试在组件 Ember 测试中调用的操作

python - SPA (Ember) 身份验证与后端

javascript - 如何修复 iframe 不适用于 Microsoft Edge?

javascript - 导出 mongoose 数据库模块

javascript - 根据值(value)选择选项

Play Framework Routes 中的 Scala 反引号

JavaScript 在索引处插入数组

javascript - 在 webpack 构建之后运行命令

ruby-on-rails - ember.js 和 rails 布局

node.js - Ember.js数据记录显示内容: null in relationships inspector