我正在从 JSON API 加载数据。我的路由几乎总是需要从服务器获取新数据。我无法控制 API 格式。
我正在尝试使用 Ember Asynchronous Routing guide 中描述的功能.具体来说,我在路由的 model
Hook 中返回一个 promise ,这样我就可以延迟转换到路由,直到数据加载完毕(并同时显示加载指示器)。
一切(actions.loading
、afterModel
等)似乎都按照指南中的描述工作。但是,每当我转换到以前去过的路线时,我都会收到一个 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/