당신은 registry.byId()
으로 검색하기 전에 버튼 위젯을 시작해야합니다. 코드에서 실제로 registry.byId("default-launch")
은 undefined
을 반환했습니다.
또한 registry.byId()
함수는 id
만 허용하므로 추가 매개 변수는 무시됩니다.
가 제대로 Button 인스턴스를 시작해야이 문제를 해결하고,
onClick
내
launchSelectDialog(allOpts)
를 선언하려면 다음 스크립트에 대한 고정 버전 아래
var myButton = new Button({
label: "Default Options",
onClick: function() {
launchSelectDialog(allOpts);
}
}, "default-launch");
.
http://jsfiddle.net/usm829jq/
require([
"dojo/dom",
"dijit/Dialog",
"dijit/form/Button",
"dijit/layout/BorderContainer",
"dijit/layout/ContentPane",
"dijit/registry",
"dojo/domReady!"
], function(dom, DijitDialog, Button, BorderContainer, ContentPane, registry) {
var allOpts = [{
label: "Foo",
value: "foo"
}, {
label: "Bar",
value: "bar"
}]
var myButton = new Button({
label: "Default Options",
onClick: function() {
launchSelectDialog(allOpts);
}
}, "default-launch");
function launchSelectDialog(SelectOptions) {
var layout = new BorderContainer({
design: "headline",
style: "width: 400px; height: 400px; background-color: yellow;"
});
var centerPane = new ContentPane({
region: "center",
style: "background-color: green;",
content: "center"
});
var actionPane = new ContentPane({
region: "bottom",
style: "background-color: blue;"
});
(new Button({
label: "OK"
})).placeAt(actionPane.containerNode);
(new Button({
label: "Cancel"
})).placeAt(actionPane.containerNode);
layout.addChild(centerPane);
layout.addChild(actionPane);
layout.startup();
var dialog = new DijitDialog({
title: 'dialog title',
style: {
//width: '400px',
//height: '400px',
},
content: layout
});
dialog.containerNode.style.backgroundColor = "red";
dialog.startup();
dialog.show();
}
})
가'내가) (당시)이 parser.parse를 (사용하여 사용을 제안; – GibboK
대단히 고마워요! 이것은 모든 것을 설명합니다. – Tsaari