2

使用 findQuery(..query..); 时,我似乎无法让 ember-data 拒绝失败(404);查找(..id..);工作正常。

所以在路线上:

App.PostRoute = Ember.Route.extend({

  serialize: function(model, params) {
    return { post_id: model.get('slug') };
  },

  model: function(params){
    var query = {};
    query.slugs = params.post_id;
    return App.Post.findQuery(query).then( 
      function (data) {
        return data.get('firstObject');
      }, 
      function (error) {
        console.log('error');
        throw 'boom!';
      }
    )
  },

  setupController: function(controller, model){
    this.controllerFor('post').set('content', model);
  },

  events: {
    error: function (reason, transition) {
     console.log('Error!');
    }
  }

});

我也试过这个:

return App.Post.findQuery(query).then( function (data) {
  return data.get('firstObject');
}).then( null, function (error) {
  console.log('error');
  throw 'boom!';
});

没有喜悦。我可以看到对 URL 的请求返回为 404,但从未触发过承诺错误。我错过了什么?

4

1 回答 1

0

我不知道这是否只是一个错字,但events你的散列PostRoute应该被称为events你接缝将它定义为单数event这可能是为什么你error在该散列中的钩子没有被找到并且没有被调用的问题:

App.PostRoute = Ember.Route.extend({
  ...
  events: {
    error: function (reason, transition) {
      console.log('Error!');
    }
  }
});

希望能帮助到你。

于 2013-08-07T12:51:16.253 回答