ちょっとした問題ですが、それは私を狂わせます。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!