TypeError: OO.ui.MessageDialog is not a constructor when using OOUI/Windows/Message Dialogs

TypeError: OO.ui.MessageDialog is not a constructor when using OOUI/Windows/Message Dialogs

我正在尝试使用 OOUI/Windows/Message 对话框来提示用户警告。我使用 https://www.mediawiki.org/wiki/OOUI/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 ) );

我明白了。

您必须在 Resources.php 中添加依赖项 'oojs-ui-core''oojs-ui-windows'

例如:

如果您要将消息对话框添加到 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'
    ],
],