2013-07-02 21 views
3

當我在做PostControllerthis.get('store').commit();發送PUT使用JSON,如:Ember.js RESTAdapter需要投入的響應與JSON

{ 
    "post": { 
     "text": "lorem ipsum", 
     "something": 23 
    } 
} 

,並從API響應僅僅是狀態碼200然後Post模型isError是真的.. 。

我必須響應具有相同的身體作爲請求有效載荷或至少與{"post": {}}滿足Post模型並再次得到isLoaded屬性true

我不知道爲什麼Ember.js需要PUT響應包含JSON數據?

POST需要JSON響應(後端生成ID等),但PUT攜帶額外信息和增加帶寬的原因是什麼?尤其是Ember.js甚至不會使用它們,空的JSON與post性質就足夠了...

+0

你得到答案了這個..如果是這樣,請分享。 – Konza

+0

對此有何線索了嗎?爲什麼我們需要在響應中發送整個數據?如果文件較大,則需要很多帶寬。 – Bhoomi

回答

3

爲獲得預期的格式很好的概述,放等可以在這裏找到:http://blog.embed.ly/post/50012690904/ember-at-embedly-tutorial-models-and-ember-data

的確是這樣,你需要一放(我沒有洞察到的原因是這樣......)後返回完整的對象。

您可以通過使用灰燼擴展的Chrome監視此。在數據選項卡,你會看到,在創建一個新的記錄的屬性被填充的,當你開始在例如輸入字段中輸入數據。當點擊保存(器transaction.commit),你進入飛行狀態,並在那一刻,你有完成了所有領域,除ID領域的典範。當服務器響應進入時,模型會使用接收到的數據進行更新:id屬性已完成,所有其他屬性將被從服務器接收的數據覆蓋。如果您因此只返回該ID,則其他屬性將被清除...

1

RESTAdapter自那時起被修改。現在正在檢查響應的http代碼。

  • 200從服務器加載返回模型
  • 204 OK沒有內容

更多細節在這個thread