ember.js - 如何处理路由中Ember数据的404?

标签 ember.js ember-data

在我的 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/

相关文章:

javascript - Ember.js 从应用程序 Controller 更新模型

ember.js - 模型实例的计算属性依赖于所有实例

Ember.js:如何将模型同步到与默认 namespace 不同的 namespace

ember.js - 由于使用 ember-data 1.13.4 记录 inFlight,验收测试失败

javascript - Ember 数据 - 适配器没有方法 'map'

javascript - EmberJS 自定义路由操作

ember.js - 将 CoffeeScript 与 ember 的 Mixins 一起使用的正确方法是什么?

javascript - jQuery [object Object] 不是有效的选择器

ember.js - 编写 Ember.js 异步测试助手和涉及异步操作的测试

ember.js - Ember.Data 重新加载内容,UI 未更新