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

时间:2018-06-05 21:39:51

标签: javascript ember.js

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

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

1 个答案:

答案 0 :(得分:4)

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

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

但是,如果需要在failCases上发送虚拟空成功响应,则可以使用以下代码段:

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