1

我在 Dojo 1.7,异步加载。

我有一个内容窗格,我通过 ajax 填充内容。我想在此内容中以声明方式使用上传器 - 如何正确要求上传器?

假设这是我用来生成将设置为内容窗格的内容的服务器页面:

<script>
require(["dojox/form/uploader/FileList",
    "dojox/form/uploader/plugins/Flash"]);
</script>

<center>
<input type="file" multiple="true" data-dojo-type="dojox.form.Uploader"
    data-dojo-props='
        label:"Foo My Bar!",
        url:"/tests/UploadFile.php",
        uploadOnSelect:"true"'/>
</center>
<br>
<div id="files" data-dojo-type="dojox.form.uploader.FileList"
            data-dojo-props='uploaderId:"uploader"'></div>

但这不起作用:找不到小部件类。我知道这是因为加载器处于异步模式,显然解析器正在尝试在 require 调用完成之前呈现小部件。

所以,问题是,如何正确地做到这一点?如果我将 require 调用放在应用程序的主页中,则一切正常(包括在主页中以声明方式设置的小部件)。

4

3 回答 3

1

It seems 'dojox/form/Uploader' is not loaded... is it required?

And you can parse contents any time you call dojo.parser.parse. If you want to execute a first parsing from your code, set "parseOnLoad : false" on dojo config, and call "dojo.parser.parse(dojo.body());".

于 2012-07-07T17:10:16.973 回答
1

您需要在页面上以声明方式引用所有小部件模块:

require(["dojo/parser","dojox/form/Uploader","dojox/form/uploader/FileList"],
  function(parser){
    parser.parse()
});
于 2014-09-01T15:09:23.697 回答
0

您是否尝试过在 dijit 中使用 dojox/layout/ContentPane 而不是 ContentPane?dojox 中的 ContentPane 类型派生自 dijit 中的类型,允许代码在动态内容中运行。在解析内容中的小部件时,它似乎还加载了必要的小部件引用。

于 2012-11-02T15:23:09.913 回答