これは最近の Dojo で修正される可能性があります - http://bugs.dojotoolkit.org/ticket/15141を参照してください- しかし、1.7.3 を使用すると、これが機能することがわかりました:
私の app ディレクトリで、dojo、dijit、dojox と同じレベルで、ファイル InlineSelectBox.js を作成しました。このファイルは、InlineEditBox をコードで拡張し、関連する domNode に HTML を Dijit の値から設定し、そのコードをonChange() イベント:
define(["dijit/InlineEditBox",
"dijit/form/Select",
"dojo/on",
"dojo/_base/declare",
"dojo/_base/array"
],
function(InlineEditBox, Select, on, declare, array){
return declare(InlineEditBox, {
_setLabel: function() {
array.some(this.editorParams.options, function(option, i){
if (option.value == this.value) {
this.domNode.innerHTML = option.label;
return true;
}
return false;
}, this);
},
postMixInProperties: function(){
this.inherited(arguments);
this.connect(this, "onChange", "_setLabel");
},
postCreate: function(){
this.inherited(arguments);
this._setLabel();
}
});
});
次に、私のビュースクリプトで:
require(["dojo/ready",
"app/InlineSelectBox",
"dijit/form/Select"
],
function(ready, InlineSelectBox, Select){
ready(function(){
// Add code to set the options array
var options = [];
// Add code to set the initial value
var initialValue = '';
var inlineSelect = new InlineSelectBox({
editor: Select,
editorParams: {options: options},
autoSave: true,
value: initialValue
}, "domNodeToAttachTo");
});
});