如何使用 PHP 动态加载 dojos 1.8 模块?

Posted

技术标签:

【中文标题】如何使用 PHP 动态加载 dojos 1.8 模块?【英文标题】:How to dynamic loadind dojo's 1.8 modules with PHP? 【发布时间】:2012-11-20 11:43:11 【问题描述】:

我的主页中有 dojox/layout/ContentPane 小部件。这个小部件动态加载任何 Hrefs,其内容包含由 php 形成的 javascripthtml。 Javascript

        $scriptCode .= 'require(["' . $scriptFile . '", "dojo/ready"], function(PageScript, ready)' . "\n";
        $scriptCode .= '    ready(function()' . "\n";
        $scriptCode .= '        setTimeout(function()new PageScript(' . $scriptOptions . '); , 0);' . "\n";
        $scriptCode .= '    );' . "\n";
        $scriptCode .= ');' . "\n";

PageScript() 是一个dojo 类绘制小部件和页面逻辑。问题在于,当加载其他href时,旧页面的对象部分地获得了新对象的属性。绘图后移除页面对象,销毁小部件无助于解决问题。

页面脚本

define(['dojo/_base/declare', 'common/widget/Card'], function (declare, pageWidget) 
return declare(pageWidget, 
    constructor: function(options)
    
);
);

PS。对不起我的英语不好

【问题讨论】:

【参考方案1】:

嗯,您的代码和问题没有多大意义。如果您想将动态创建的内容加载到 ContentPane 中,最简单的方法是传入一个 dojo 模板。只需使用data-dojo-type 创建您需要的任何小部件。如果您需要在小部件加载时运行代码,请将其放入小部件的 startup 函数中。

【讨论】:

以上是关于如何使用 PHP 动态加载 dojos 1.8 模块?的主要内容,如果未能解决你的问题,请参考以下文章

Dojo 1.8 构建系统 - 如何设置前缀/路径?

如何在 XPages Domino 9 预览版中直接引用 Dojo 1.8 文件?

在 Dojo/Dijit 中动态加载 CSS?

如何在 dojo 中加载 js 小部件文件? registerModulePath 工作,但在 1.8 包中不工作 - 立即需要帮助

dojo dijit 额外模板连接事件

如何将 Dijit 小部件动态添加到 Dojo 表单?