我目前在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),但没有解决我的问题。任何见解都非常感谢。
谢谢
答案 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
});