从Dojo 1.4升级到1.8

时间:2014-04-24 05:43:10

标签: dojo dojox.grid

我正致力于将Dojo从1.4迁移到1.8。我有一个项目,其中有一些jsp页面在其中编写dojo,它从xml文件中获取dojo的路径。 我已经将dojo 1.4 Library的路径更改为dojo 1.8 Library,但是在执行此操作之后,dojo小部件的引用会引发错误

例如dijit.byId(“idofwidget”)

错误:dijit.byId(“idofwidget”)为null或不是对象。

请指导如何解决问题,如果可以提供升级的基本步骤,那就更好了。

先谢谢

1 个答案:

答案 0 :(得分:2)

如果您真的要升级到Dojo 1.8,那么您必须将代码重写为AMD,例如:

// 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");
    });
});

要知道的一件重要事情是,您不会升级Dojo,而是迁移它(至少在使用1.7之前和之后)。这通常涉及您不能简单地更改Dojo库,但您也必须迁移代码。

有一些关于从1.7之前迁移到1.7之后的文章,例如this article about migrating

Sitepen还提供了一个名为Dojo AMD converter的工具,它可以将您的模块转换为AMD语法,但它不能100%保证它会起作用,但它会让您更近一步(至少)。他们还有一篇关于迁移的文章,您可以找到here