0
每次打開對話窗口時,我都需要在對話窗口中添加不同數量的元素。這裏是我的代碼:CKEditor:每次加載對話框時添加元素
CKEDITOR.on('dialogDefinition', function(ev) {
var dialogName = ev.data.name;
var dialogDefinition = ev.data.definition;
if (dialogName == 'myCustomDialog') {
dialogDefinition.onShow = function() {
var dialogContents = this.definition.getContents('info');
var genericElement =
{
type : 'text',
id : 'generic',
label : 'Some Label',
};
var editorData = this.getParentEditor().getData();
for (var i = 0; i < someFunction(editorData); i++) {
var newElement = genericElement;
newElement['id'] += '-' + (i + 1); // "generic-1", "generic-2", etc.
dialogContents.add(newElement);
};
// console.log(this.definition.getContents('info'));
};
}
});
這是什麼並不重要someFunction
做,只是添加的對話框元素的數量在打開的對話框窗口中的時間取決於編輯的數據的事實。
元素正被添加到對話框定義中,但是這些更改不會反映在對話窗口中。
如果我將dialogDefinition.onShow = function() {...}
的代碼放在該函數之外(對變量定義進行小幅修改),則會添加這些元素,但只是第一次加載對話窗口。
任何提示?