'fetch'之后没有调用成功/错误回调(在Backbone.Collection上)

时间:2011-10-28 00:55:50

标签: javascript jquery javascript-events backbone.js

我目前在Backbone上遇到一个奇怪的问题。我有一个Backbone集合对象,我将自定义成功和错误回调。

A)---->工作


    Fubars = Backbone.Collection.extend({ 

      url: "/listfubar",
      model: Fubar,
      fetchS: function() {
        fetch(  { success : sFn, 
                    error : eFn, 
                    statusCode : cFn 
        }); 
      },  
    })

    var fbars = new Fubars(); 
    fbars.fetchS();

B)---->打破


    afterPoll = function() {   
        fbars.fetchS()
    }

当通过常规javascript文件A)调用'Fubars.fetchS'时,这很好。但是,当fetchS(和提供的回调)本身是从“ajaxPoll”回调B调用时,我遇到了问题。正确调用'fetchS',回调全部存在,并且通过Backbone.sync>进行网络调用。 JQuery.ajax。但是永远不会调用成功,错误或statusCode回调(同样,网络调用肯定会退出,并成功返回)。

有没有人碰到这个?我只能认为,当'afterPoll'退出时,成功和错误回调可能会以某种方式消失。但'fubars'是一个全球性的对象,所以这没有任何意义。

我查看了类似的帖子(here),但没有解决我的问题。任何见解都非常感谢。

谢谢

2 个答案:

答案 0 :(得分:0)

执行此操作以获取..     

    
    (function fetch(){success:...,error:... }).call();
    or
    (function fetch(){return {success:...,error:...}
     }).call();
    
    

答案 1 :(得分:0)

我怀疑,问题可能是由于缺少这个

尝试替换此声明:

    fetch(  { success : sFn, 
                error : eFn, 
                statusCode : cFn 
    }); 

发表声明:

    this.fetch(  { success : sFn, 
                error : eFn, 
                statusCode : cFn 
    });