2012-04-03 35 views
3

我有一個模型,具有url屬性。 當我使用「保存」方法保存模型時,它正在向服務器發送請求。 如果通信成功,則會觸發success()方法,如果通信失敗,則會觸發「錯誤」功能。 但是,如果沒有通信問題,但是當服務器由於某些服務器驗證或其他原因而發送「失敗消息」時會怎麼樣? 由於服務器端驗證(或其他),模型未保存在服務器中。 因此,它也不應該保存在骨幹模型中。 我應該怎麼做,告訴模型不是當服務器發送「錯誤更新數據庫」保存並告訴它保存當我收到「成功更新」 我從服務器發送如下回應:骨幹 - 我們的模型如何知道服務器是否使用PHP發送「錯誤消息」

$this->response(
     array(
      'model'=>$model, 
      'status'=>$status, 
      'metamodel'=>array(), 
      'message'=>$msg (either success or fail)(my custom message) 
      ) 
     ); 

在客戶端,我正在像這樣保存。

 model.save(attr{ 
      success:(model,res)-> 
      // to do when communication success 
      error:(model,res)-> 
      //to do when communication fails 
     }) 

那麼,如何根據消息或狀態來檢查服務器是否成功? 而且,我怎麼能電話模式不保存或服務器時說恢復的變更「不」(NOT內部服務器錯誤,bcoz驗證或其他原因,我的自定義錯誤)

而且,我該如何使用Backbone.Sync方法(請與我的代碼相關的實際例子) 它有什麼作用? (請明確指出通信問題還是自定義錯誤消息還是內部服務器錯誤)

我可以在「成功」方法中訪問「狀態」和「消息」,但是如何使用它們還原對模型的更改。 謝謝

+0

如果您的後端設置爲處理REST請求,則不需要更改主幹的同步方法。它應該開箱即用。要處理錯誤,您應該在錯誤時發送正確的HTTP代碼,而不是默認的200.如果你這樣做,它應該調用錯誤處理程序。我從來沒有使用過CodeIgniter,但我確信在響應中可以更改爲http代碼。 – Gohn67 2012-04-03 13:14:04

+0

如何發送錯誤的HTTP代碼?你的狀態信息是什麼? – user1305989 2012-04-03 13:18:58

+0

下面是Backbone手冊所說的鏈接:http://documentcloud.github.com/backbone/#Model-save。閱讀保存的部分。它說返回一個「非200 HTTP響應代碼」來調用錯誤代碼。 – Gohn67 2012-04-03 13:28:14

回答

相關問題