[英]How to integrate a custom framework into backbone?
我使用PHP和此對象文字形式訪問服務器。 該對象文字將轉換為JSON,然后發送到服務器,然后在服務器中轉換回一個對象。 從那里,我閱讀了model屬性,以了解要運行哪個模型。 另外,包含的是用戶令牌,因此我知道要為其檢索模型數據的用戶。
$A.Packet.define({
model: null,
client: {},
server: {
smalls: {},
feed: {},
favorites: {}
}
});
基本上,策略是將信息編碼為對象文字,然后對其進行json編碼,發送,解碼,應用服務器邏輯並以JSON形式發送回數據。
所有這些都被抽象為正在運行
$A.Packet.push({model: self.Name});
然后pre(packet)
和post(packet)
ajax方法自動運行。
如何將這種樣式集成到主干中?
根據Backbone的說法,我可以重寫sync()
函數,但是我想在破解方法之前最好地了解如何集成事物。
我的代碼已經轉換為MV *形式,但是我正在使用虛擬數據來測試前端。 我現在想提起后端。
開發站點在這里:
有關
如何覆蓋Backbone.sync? -但是,我現在還不想使用localStorage,也沒有使用它指出必須實現的4種方法。
我所有的操作都是POST JSON調用,它們在到達服務器后便會執行所需的操作。
在帶注釋的Backbone.LocalStorage源中,在文檔末尾有一個靜態方法,稱為Backbone.LocalStorage.sync
別名為Backbone.localSync
。 這是他們編寫實現自定義同步的代碼的實際部分。
Backbone.sync
引用到Backbone.ajaxSync
。 Backbone.sync
以使用該策略。 這允許開發人員通過向模型根對象(在本例中為localStorage : new Backbone.LocalStorage()
添加屬性來選擇哪種同步類型。 您只需要根據自己的需要實施即可。
// Create your own sync method
Backbone.customSync = function(method, model, options, error) {
// Your custom sync code here
return $.post('http://something.somewh.ere', model.toJSON());
// Implementing a switch statement for the method in here would
// be a good idea :-)
}
// Create reference to original sync method
Backbone.ajaxSync = Backbone.sync;
// Get the sync strategy
Backbone.getSyncMethod = function(model) {
if(model.customSync || (model.collection && model.collection.customSync))
return Backbone.customSync;
return Backbone.ajaxSync;
};
// Overwrite Backbone.sync to call getSyncMethod() to run sync tasks
Backbone.sync = function(method, model, options, error) {
return Backbone.getSyncMethod(model)
.apply(this, [method, model, options, error]);
};
現在,當模型具有作為真實值的屬性customSync
,將使用新的同步策略。
所有這些都可以進行調整以特別適合您的需求,希望能有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.