0

ちょっとした問題ですが、それは私を狂わせます。TabContainersを使用して独自のウィジェットを作成したいと思います。さて、mixin-ClassesはTabContainerモジュールを呼び出して起動できないようです。さまざまなウィジェットで多くのことを試しましたが、TabContainerに問題があるようです。Docを見ると、それがDojo内のバグなのか、コード内のバグなのかがわかりませんでした。それにもかかわらず、これは機能します

<script type="text/template" id="editMultilanguageDialog-form-template">
  <form data-dojo-type="dijit.form.Form" data-dojo-attach-point="form">
    <button data-dojo-type="dijit/form/Button" data-dojo-props="iconClass:'dijitEditorIcon dijitEditorIconCut', showLabel: false" type="button">cut</button>
  </form>
</script>

...しかし、これはそうではありません!

<script type="text/template" id="editMultilanguageDialog-form-template">
  <form data-dojo-type="dijit.form.Form" data-dojo-attach-point="form">
    <div data-dojo-type="dijit/layout/TabContainer" style="width: 100%; height: 100%;">
        <div data-dojo-type="dijit/layout/ContentPane" title="My first tab" data-dojo-props="selected:true">
            Lorem ipsum and all around...
        </div>
        <div data-dojo-type="dijit/layout/ContentPane" title="My second tab">
            Lorem ipsum and all around - second...
        </div>
        <div data-dojo-type="dijit/layout/ContentPane" title="My last tab" data-dojo-props="closable:true">
            Lorem ipsum and all around - last...
        </div>
    </div>
  </form>
</script>

dialog.js内で呼び出されるコードは次のようになります。

 define([ "modules/waitingDialog/dialog", "util/debugger", "stores/userStore",
    "util/storeCache", "dojo/Evented", "dijit/Dialog", "dojo/_base/lang",
    "dojo/_base/declare", "dijit/_Widget", "dijit/_TemplatedMixin",
    "dijit/_WidgetsInTemplateMixin", "dojo/dom", "dojo/_base/Deferred",
    "modules/editMultilanguageDialog/controller", "stores/facultyStore",
    "stores/degreeStore", "stores/beginOfStudyStore" ], function(wait,
    debug, userStore, storeCache, Evented, Dialog, lang, declare, widget,
    templatedMixin, widgetsInTemplateMixin, dom, Deferred,
    editMultilanguageController, facultyStore, degreeStore,
    beginOfStudyStore) {
return declare("editMultilanguageDialog", [ Dialog, Evented ], {

    attributeMap : lang.delegate(widget.prototype.attributeMap, {
        message : {
            node : "messageNode",
            type : "innerHTML"
        }
    }),

    constructor : function(/* Object */kwArgs) {
        debug.log("constructor called",
                "editMultilanguageDialog.constructor()", 1);
        lang.mixin(this, kwArgs);

        var controller = new editMultilanguageController(kwArgs);
        this.controller = controller;

        var dialogTemplate = dom.byId("dialog-template").textContent;
        var formTemplate = dom
                .byId("editMultilanguageDialog-form-template").textContent;
        var template = lang.replace(dialogTemplate, {
            form : formTemplate
        });

        var contentWidget = new (declare([ widget, templatedMixin,
                widgetsInTemplateMixin ], {
            templateString : template,
            widgetsInTemplate : true
        }));

        var content = this.content = contentWidget;

        this.form = content.form;

        contentWidget.startup();
    }, [...]

この問題は私を狂わせています。カスタムウィジェットを作成することで、誰もが同じ問題を経験した可能性があると考えました。事前にThx!

4

0 に答える 0