2013-09-24 78 views
1

我想在这里遵循的指导这仅仅是活跃的近3个月 - https://gist.github.com/machty/5723945如何处理灰烬数据错误

所以我有我这样的代码:

App.UsersRoute = Em.Route.extend 
    beforeModel: (transition) -> 
     alert('before') 

    model: ->  
     App.User.find({}).then (response) ->  
     # my code here parses response and sets it 
     self.controllerFor('users').set('content', response.users) 

     # for some reason i need to at least return an array 
     [] 

    events: 
     error: (error, transition) -> 
     alert(error.message) 

但错误回调在事件下从未触发。我强制我的服务器返回500服务器错误。

beforeModel(或afterModel)也没有被触发。我将如何做到这一点使用最新的

回答

3

例子构建余烬和EmberData的:

App = Ember.Application.create({}); 

App.User = DS.Model; 

App.IndexRoute = Ember.Route.extend({ 
    beforeModel: function(){ 
    alert('before'); 
    }, 

    model: function() { 
    this.store.find('user', {}).then(function() { 
     alert('response'); 
    }, function() { 
     alert('error'); 
    }); 
    } 
}); 

Live Demo

错误可以在承诺(then)的第二(reject)回调来处理。

+0

嗨,你没有返回this.store.find这里。您的模型将如何分配给响应? – Sangram

+0

@ user2745266我可能只是忘记了'return'因为我习惯了CoffeeScript,但是您可能会在成功回调中指定某些内容,并且不会为此控制器的模型返回任何内容(就像在问题中所做的那样)。 – gerry3

+0

@ gerry3-当然。谢谢。 :) – Sangram