自定义骨干同步

Flu*_*yte 2 sync backbone.js

我正在尝试使用以下内容构建Backbone的自定义替换sync:

function getStuff(){
    return {"id":"1","name":"Joe"};
}
Run Code Online (Sandbox Code Playgroud)

然后Backbone.sync我有:

Backbone.sync = function(method, model, options) {

    switch(method){

        case 'read':
            getStuff();
            break;

        ...More cases...
Run Code Online (Sandbox Code Playgroud)

我已经查看了几个关于替换同步的帖子,我知道我需要options用来处理返回,但我似乎无法让它工作.

Tal*_*key 5

提取通常是异步的,因此您应该将您的响应返回到options.success函数:

sync : function(method, model, options) {
    if (method == 'read') {
        var yourResponse = getStuff();
        options.success && options.success(yourResponse);
    }
}
Run Code Online (Sandbox Code Playgroud)

Backbone使用options.success函数将响应应用到Model上.您还可以提供自己的options.success功能:

yourModel.fetch({
    success : function(response) {
        // use response
    }
});
Run Code Online (Sandbox Code Playgroud)

请注意,Backbone现在将运行您的自定义成功函数,然后运行自己的函数.