Ошибка типа: 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'
    ],
],
Другие вопросы по тегам