Hi!
I've tweaked my code few times, trying to make it simpler: got rid of
some closure calls and left only one dynamic module load at client-side.
http://pastebin.com/UxyifLmx
http://pastebin.com/q3Tm6Ajd
http://pastebin.com/4emMDBS6
Still, it gives me headaches, because mw.loader.using( 'ext.jqgmap.edit'
,function(...)) does not actually execute the loaded module's code even
when the callback function is "fired". This means that additional
mw.jqgmap prototypes defined in 'ext.jqgmap.edit' are not available when
actual object instances are created in function createMapControllers(),
thus throws an error. When I add explicit call to dummy function
loadEditPrototypes() defined in 'ext.jqgmap.edit', the module is
executed, but the further scipts execution abruptly ends without any
error in Chrome console.
To me it seems that ResourceLoader tries to be too smart not actually
executing the code just before .using() callback. How does it figure out
that I defined function loadEditPrototypes() in 'ext.jqgmap.edit'
module? That kind of 'automagic' is tricky. Why not to have something
like $wgAutoloadClasses but for ResourceLoader? Or, even to be able to
really execute module on load. And why does it stop execution path is a
puzzle to me..
Dmitriy
_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l