Projected Timeline for ArcGIS JS API library update to fully support AMD

798
1
12-03-2012 05:46 AM
JacksonGilman1
New Contributor III
Are there any estimates (ballpark even) on when the ESRI API will fully support the Dojo 1.7 (and higher) toolkit?  I'm having a very difficult time trying to mash both loaders together (dojo.require alongside require())

One example: the esri.Map object doesn't implement Dojo's "Evented" mixin..., so I can't use the 'dojo/on' module

Has anyone been successful in utilizing both Dojo versions in tandem?

Thanks!
-Jackson
0 Kudos
1 Reply
ReneRubalcava
Frequent Contributor
Are there any estimates (ballpark even) on when the ESRI API will fully support the Dojo 1.7 (and higher) toolkit?  I'm having a very difficult time trying to mash both loaders together (dojo.require alongside require())

One example: the esri.Map object doesn't implement Dojo's "Evented" mixin..., so I can't use the 'dojo/on' module

Has anyone been successful in utilizing both Dojo versions in tandem?

Thanks!
-Jackson


A good habit at this point would be to load modules like dojo/_base/connect, dojo/_base/array, dojo/dom, ... etc. This way you can avoid needing to do things like dojo.connect(), dojo.forEach(). I don't think I have read that the dojo.function() methods will go away, but I know it's suggested to not do it anymore.
http://dojotoolkit.org/reference-guide/1.8/releasenotes/migration-2.0.html

I agree though, I like to think the dev team is working behind the scenes looking ahead to Dojo 2.0 to migrate the required modules to the Evented method. It's probably a large task under the hood so as to not break stuff thoughout the API.

You can still build you modules with Evented. I build out all my modules and widgets with Evented so that I can do things like a connect event and bubble it with this.emit().

So far, I have had pretty good luck using things like below to load esri modules to the esri namespace. I don't think I use dojo.require() for anything I'm doing anymore.

define(['esri/tasks/identify'], function(){/* stuff* /});
0 Kudos