2012-08-30 31 views

回答

2

當然可以。然後整個「同步」層是可替換的。 Backbone.js文件有一些關於sync layer的信息。這是默認的(REST) implementation

替換同步層的一個簡單示例可以在backbone-localstorage extension中找到。

就您而言,您只需編寫用於讀取,創建,更新和刪除的代碼,Backbone爲您處理剩下的問題。

還要注意的是,你可以(通過設置在ModelCollection實例的「同步」屬性)

+0

布萊恩,如果你看一下我的例子,你會發現在全局或實例級別覆蓋同步層該方法直接針對Thrift客戶端調用:client.calculate(1,work)。不使用Backbone需要的URL。因此,我看不出Backbone的「同步」層如何用於與Thrift交互,因爲Thrift類似於RPC。 Backbone是否支持非RESTful方法?你可以解釋嗎? –

+0

Backbone'Model'依賴於你提供的操作來創建,讀取,更新和刪除。只要您可以找出如何映射到這些選項,您就可以使用骨幹模型。您可以完全忽略模型上的URL屬性。我鏈接到的「localstorage」示例就是這樣做的。相反,該模型將一個localstorage屬性添加到模型中。你可以做類似的事情,它會把「get」動作映射到你的動作上......比如'thriftProperties:new Thrift.Properties({action:calculate})''。您的實際實施將映射到您想要使用它的方式。 –

+0

我應該補充說,如果你至少不能映射'get'動作,那麼'Model'可能就不合適。你可能只想創建一個「Command」對象來封裝你的遠程調用,並返回你的結果......類似於'var calculateCommand = new CalculateCommand(); calculateCommand.execute({success:successCallback})''。然後,您只需使用Backbone路由器並以相同的方式查看,但使用自定義命令而不是更正式的'Backbone.Model'實現。 –