在我的 route ,我有一个尝试从服务器请求模型列表的方法
model: ->
App.MyModel.find
projectId: (@modelFor "project").id
现在显然有时这可能会返回 404。
当这种情况发生时,Ember 就会停止做任何事情。没有渲染 View ,没有设置 Controller 。
那么如何正确处理 404(即显示错误 View )?
最佳答案
坏消息:现在,ember-data 在 find() 上收到 404 错误时不会执行任何操作。完全没有。模型永远处于“加载”状态。
在我看来,这里没有不完全愚蠢的选择。作为最后的手段,我可能会在 DS.Model 上添加一个 notFound
属性,而不是返回 404,而是返回 JSON,并将 notFound
设置为 true
。我知道这很痛苦...
--- 我最初提供了一个在 RESTAdapter
子类中重写 find
的解决方案。然后我注意到 find
没有传递它应该加载的记录实例。因此,不要通过将记录置于错误状态来继续处理 404。
[注意:ember-data 自 2013 年 3 月以来发生了巨大变化,此答案中的信息可能不再有效]
关于ember.js - 如何处理路由中Ember数据的404?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15569778/