"Gett" (Backbone.Collection-da) da muvaffaqiyatli/xato qayta qo'ng'iroq (lar)

Men hozirda (yoki atrofida) magistral bilan ajralib turadigan muammoga aylandim. Menda "Backbone" to'plam ob'ekti mavjud, buning uchun men maxsus muvaffaqiyat va xatolarni qaytarib olishni qo'yaman.

A) ----> Working

    Fubars = Backbone.Collection.extend({ 

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

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

B) ----> Breaking

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

This works fine when 'Fubars.fetchS' is being invoked through a regular JavaScript file A). However, I'm having a problem when fetchS (and supplied callbacks) is itself invoked from an 'ajaxPoll' callback B) . 'fetchS' is properly called, the callbacks all exist, and the network call is made through Backbone.sync > JQuery.ajax. But the success, error, or statusCode callbacks are never invoked (again, the network call definitely goes out, and returns successfully).

Bunga kimdir qochib ketadimi? Men faqatgina muvaffaqiyatga erishish va xatolarni qaytarib olishni "ShaxsiyPoll" chiqishi bilan tugashini tasavvur qila olaman. Ammo "fumbar" - bu global ob'ekt, shuning uchun hech qanday ma'no yo'q.

Men shunga o'xshash xabarlarga qaradim ( bu yerda ), lekin muammoimni hal qilmayapman . Har qanday tushuncha juda qadrlanadi.

Rahmat

3
Istisno qilinayotganingizni bilib olish uchun konsolingiz oynasini ochasizmi?
qo'shib qo'ydi muallif Brian Genisio, manba
istisnolarsiz; So'rov qayta chaqiruvi ishladi, lekin keyinroq "muvaffaqiyat" orqaga qaytarilmadi. uning atrofida borib, bu muammoni hal tugadi> 'bu' yozuvlar g'oyib bo'ldi. saylov qayta qo'ng'iroq qilish fetchS iltijo qilganida, uning 'muvaffaqiyat', faollik Men va boshqalar "bindAll" bu olish uchun, fetchS, sinxronlash (aslida $ .ajax iltijo Bb fn), harakat qiling edi> tarmoq qo'ng'iroq keyin yo'qoladi, lekin hech narsa ishlagan qiziqarli sud -> hyperslug ning taklifini harakat qilmadi> bevosita so'rov keyin $ .ajax chaqirib, va qo'lda natija bilan Fubars to'plamini o'rnatish tugadi. Albatta, bu "yo'qolgan" joyni bilishni istayman
qo'shib qo'ydi muallif Nutritioustim, manba
getch() fbars misoliga mos yozuvlar kerakmi, deb o'ylayman. afterPoll = _.bind (fbars.fetchS, fbars) ni amalga oshirganda nima sodir bo'ladi; afterPoll (); ?
qo'shib qo'ydi muallif hyperslug, manba
Nima uchun muvaffaqiyat va xato qaytaruvi qaytarib olgan Orbbone.collectionning asl qabul qilish usuli ishlatilmaydi? quyidagi kabi: Fubars.fetch ({muvaffaqiyat: sFn, error: eFn}); documentcloud.github.com/backbone/#Collection-fetch sahifasida " usulni olib kelish uchun argumentlarni qabul qilish.
qo'shib qo'ydi muallif matiasfh, manba
Sizning murojaatingiz hech qanday chaqirilmagan yoki ishlamayotganligini aniqlashtirishingiz kerak. Men o'yinga chaqirilgandirman, lekin ular ishlamayapti, chunki ular "bu" to'g'ri emas, va mavjud ob'ektni "bu" deb atash uchun bog'lash yoki bog'lash uchun foydalaning, shuningdek, documentcloud.github.com/underscore/#bindAll
qo'shib qo'ydi muallif dira, manba

2 javoblar

buni olib kelish uchun qiling ..

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

0
qo'shib qo'ydi

Menimcha, bu muammo yo'q bu tufayli bo'lishi mumkin.

Ushbu iborani o'zgartirishga harakat qiling:

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

ushbu bayonot bilan:

    this.fetch(  { success : sFn, 
                error : eFn, 
                statusCode : cFn 
    });
0
qo'shib qo'ydi
Javascript UZB
Javascript UZB
99 ishtirokchilar

@js_uzb @vuejs_uz @react_uz @nodejs_uz @angular_uz @ngTashkent @yiiframework_uz @laravel_uz @linux_uzbek @python_uz @swift_uzb —————— @uzdevgroup @UzGeeksGroup ——— @UzDev_Jobs @jobs_uzb