user2721609
user2721609

Reputation: 57

Upgrade from Dojo 1.4 to 1.8

I am working on the Migration of Dojo from 1.4 to 1.8. I have a project in which there are some jsp pages in which dojo is written and it takes the path of dojo from an xml file. I have changed the path from dojo 1.4 Library to dojo 1.8 Library, but after doing this the referneces to the dojo widgets are throwing an error

e.g dijit.byId("idofwidget")

ERROR : dijit.byId("idofwidget") is null or not an object.

Please guide how to resolve the issue and it would be better if basics steps to upgrade can be provided.

Thanks in Advance

Upvotes: 1

Views: 283

Answers (1)

Dimitri Mestdagh
Dimitri Mestdagh

Reputation: 44665

If you're really going to upgrade to Dojo 1.8, then you will have to rewrite your code into AMD, for example:

// Load the modules you need
require([ "dijit/registry", "dojo/ready", "dojo/parser" ], function(registry, ready) {

    // Wait until DOM is finished + widgets on the page are parsed
    ready(function() {

        // Retrieve widget instance
        registry.byId("idofwidget");
    });
});

One important thing to know is that you don't upgrade Dojo, you migrate it (at least when using pre- and post-1.7). This usually involves that you can not simply change the Dojo library, but you will have to migrate your code as well.

There are some articles about migrating from pre-1.7 to post-1.7, for example this article about migrating.

Sitepen also provided a tool called the Dojo AMD converter which can convert your modules into AMD syntax, it's not 100% guaranteed that it will work, but it puts you one step closer (at least). They also have an article about migrating, which you can find here.

Upvotes: 2

Related Questions