javascript - API 失败时 Ember.js 模型的默认值

标签 javascript ember.js

当 Ember.js 模型 Hook 失败时,路由转换失败。如何避免这种情况。我想传递一些默认值,例如消息的空数组,以防 ajax 调用失败。

model() {
  return Ember.RSVP.hash({
    messages: $.getJSON("localhost:3000/messages")
  });
}

最佳答案

当模型 Hook 失败时,路由转换就会失败。理想情况下,这应该在模型拒绝时触发的错误操作中进行处理。

actions: {
    error(error) {
        //show error message
    }
}

但是,如果确实需要在失败案例上发送虚拟的空成功响应,则可以使用以下代码片段:

model() {
    Ember.RSVP.hash({
        messages: $.getJSON("localhost:3000/messages")
    }).then(function(hash){
      //success handler, do nothing
    }, function(error) {
      return RSVP.resolve({messages: Ember.A()});
    });
}

关于javascript - API 失败时 Ember.js 模型的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50709337/

相关文章:

javascript - Ember 无法读取未定义的属性 'find'

javascript - Ember.js 在 View 中获取模型

json - 在 Ember.js 中使用 RESTAdapter 使用 JSON API 的简单方法是什么?

javascript - CSS样式执行的优先顺序

javascript - d3.js 使用复选框进行过滤

javascript - 为什么我不能删除用 var 声明的 javascript 值?

javascript - 如何在 Ember.js 中将特定元素添加到 DOM?

rest - 如何强制ember-data从服务器重新加载记录的数据

javascript - 慢慢打印文本,并解释 html

javascript - 可见性不起作用