2015-06-12 50 views
0

過去幾年中一直存在關於此主題的問題,但從那時起,Ember發生了很大變化,其中大部分答案都是填充,直到事情更「一起」。我正在使用一個使用ember-cli的應用程序。在api上,如果你從api中請求一個不存在的資源,那麼api會返回一個404.然而,在收到一個404後,燼數據似乎只是拋出一個錯誤。我看到一種看起來很有前途的方法,有人在2014年回答了類似問題,並且提供了此代碼示例:灰燼數據和處理404

return this.store.find('matter', params.matter_id).then(
     (function (_this) { 
      return function(model){ 
       resolve(model); 
      } 
     })(this), 
     (function (_this) { 
      return function(invalid){ 
       _this.transitionTo('auth.denied'); 
      } 
     })(this)); 

支持承諾可以採取決心和拒絕作爲參數。在上面的代碼中,他通過自我實例化函數作爲解析和拒絕參數。拒絕正在按照我希望的方式工作。然而,現在我遇到的問題是,當我進入解決方案時,儘管'model'變量帶有一個ember數據對象,但我似乎無法正確解決這個問題。 Ember拋出並錯誤地指出,「在調用push的事件中,預期對象爲data,但未定義」。

我希望Ember社區中的某個人可能對如何正確解決這個問題有所瞭解,或者可能是更好的方法來解決這個問題。

+0

解決方法沒有在那裏定義... – Kingpin2k

回答

0

this.store.find返回promises

嘗試做這樣的事情

this.store.find(...).then(function(model) { 
    console.log(model); 
    resolve(model) 
}, function(reason) { 
    alert('error'); 
}); 

是模型json,如果沒有它可能是問題嗎?