Ошибка типа: OO.ui.MessageDialog не является конструктором при использовании диалоговых окон OOjs UI/Windows/Message.
Я пытаюсь использовать OOjs UI/Windows/Message Dialogs для предупреждения пользователя. Я использовал фрагмент кода из https://www.mediawiki.org/wiki/OOjs_UI/Windows/Message_Dialogs чтобы открыть диалоговое окно.
Но когда я использую var messageDialog = new OO.ui.MessageDialog();
эта ошибка возникает- TypeError: OO.ui.MessageDialog is not a constructor
,
В чем может быть проблема?
Код выглядит следующим образом:
( function ( $ ) {
$( '#movepage' ).on( 'submit', function(event){
var messageDialog = new OO.ui.MessageDialog();
var windowManager = new OO.ui.WindowManager();
$( 'body' ).append( windowManager.$element );
windowManager.addWindows( [ messageDialog ] );
windowManager.openWindow( messageDialog, {
title: 'Storage limit reached',
message: 'You are out of disk space',
actions: [
{ label: 'Cancel', action: 'cancel' },
{ label: 'Move page', action: 'proceed' }
]
});
});
}( jQuery ) );
1 ответ
Решение
Я понял это.
Вы должны добавить зависимости 'oojs-ui-core'
, 'oojs-ui-windows'
в Resources.php
,
например:
Если вы добавляете диалог сообщения к mediawiki.special.movePage.js
'mediawiki.special.movePage' => [
'scripts' => 'resources/src/mediawiki.special/mediawiki.special.movePage.js',
'dependencies' => [
'jquery.byteLimit',
'mediawiki.widgets',
'oojs-ui-core',
'oojs-ui-windows'
],
],