Dijit的组合框自定义窗口小部件不渲染(Dijit combobox not rendering

2019-10-16 23:15发布

我试图使用由Dijit的一个特制的小部件的内部设置的组合框。 我一直在使用的组合框Dojo的教程来指导我。

当我实施类似于其实例教程一个独立的网页,一切运行良好; 但是当我移植的代码为我定制的小部件,它只是呈现组合框作为一个普通的HTML文本框。

下面是我的自定义窗口小部件的模板是这样的:

<div class='customWidget'>
    ...

    <div dojoAttachPoint="mainDiv" class="mainDiv">
        <div dojoType="dojo.data.ItemFileReadStore" jsId="stateStore" url="states.txt"></div>

        <input dojoType="dijit.form.ComboBox"
               store="stateStore"
               value="California"
               searchAttr="name"
               name="state2" />

        <button dojoAttachEvent="onclick:chooseState">OK</button>
    </div>

    ...
</div>

在小部件的代码,我需要组合框和读取店:

dojo.require("dijit.form.ComboBox");
dojo.require("dojo.data.ItemFileReadStore");

我也试图把这些包含在<script />自定义窗口小部件(类似于他们这样做教程的方式),但没有奏效内(事实上,它看起来好像script标签甚至不评估,因为我不能引用我的是内声明的功能!)

Answer 1:

你已经widgetsInTemplate在你的widget声明?

  dojo.declare('my.widget.Cool',[ dijit._Widget, dijit._Templated ], {

      widgetsInTemplate: true,

      // rest of widget JS here

   });

这里的一篇文章有关,包括在你的模板的其他部件。



Answer 2:

您是否尝试过加入:

<script type="text/javascript">
    dojo.require("dojo.parser");
    dojo.addOnLoad(function(){
        dojo.parser.parse();
    });
</script>

(从Dojocampus ),以确保道场被解析的页面? 有没有在你的Javascript控制台任何错误? 是页面渲染任何正常的Dojo小部件?



文章来源: Dijit combobox not rendering in custom widget
标签: dojo