[英]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.