Zend FrameworkでDojoダイアログを作成しようとしていますが、いくつかの問題が発生しました。私のビューコードは次のようになります。
<script type="text/javascript" src="<?= $this->baseUrl('/js/dojo-release-1.7.2/dojo/dojo.js')?>"
data-dojo-config="async: true" dojoConfig = "parseOnLoad: true">
</script>
<script>
require(["dijit/registry", "dojo/ready", "dojo/dom", "dijit/Dialog", "dijit/form/Form"],
function(registry, ready, dom, Dialog){
ready(function() {
createDialog = function(titleText, contentText) {
var node = dojo.byId("foobar");
var myDialog = new Dialog({ title:"From Source Node" }, node);
myDialog.show();
};
});
});
</script>
<body class="claro">
<div data-dojo-type="dijit/Dialog" id="foobar" title="Foo!" style="display: none">
<p>I am some content</p>
</div>
</body>
ダイアログをロードするボタンコードは次のようになります。
<button name="btnDialog" id="dialogbtn" type="button" onclick='createDialog();'>Open</button>
ボタンを最初にクリックすると、期待どおりにダイアログが開きますが、ダイアログを閉じてボタンをもう一度クリックすると、ダイアログが開かず、コンソールに次のエラーが表示されます。
ウィジェットをid==foobarに登録しようとしましたが、そのIDはすでに登録されています。
私は何が間違っているのですか?
ありがとう