Extjs 4.2.1 Ext.Msg.show rtl不工作

Extjs 4.2.1 Ext.Msg.show rtl不工作,extjs,extjs4,right-to-left,Extjs,Extjs4,Right To Left,在my index.html中,我使用 <script type="text/javascript" src="../ext-all-rtl.js></script> 当消息显示rtl不工作时,它显示组件ltr 其他组件(如窗口、面板等)可以很好地使用rtl属性 MessageBox是否还需要其他东西才能使用rtl功能?整个组件层次结构都继承了“rtl:true”配置,您应该能够将“rtl:true”添加到层次结构中的顶级组件(通常是视口)。这样就不需要自己设置“dir

在my index.html中,我使用

<script type="text/javascript" src="../ext-all-rtl.js></script>
当消息显示rtl不工作时,它显示组件ltr

其他组件(如窗口、面板等)可以很好地使用rtl属性

MessageBox是否还需要其他东西才能使用rtl功能?

整个组件层次结构都继承了“rtl:true”配置,您应该能够将“rtl:true”添加到层次结构中的顶级组件(通常是视口)。这样就不需要自己设置“direction:rtl”,因为rtl层次结构中的组件将在其元素中添加“x-rtl”类

您还需要确保使用的是rtl样式表,因为ExtJS组件需要相当多的特殊样式才能在rtl模式下正常工作。例如,对于经典主题,这将是:ext-theme-classic-all-rtl.css


如果您仍然被卡住,请看看这个示例:

好的,可能我做得不对

我将rtl:true参数传递给消息框的方法show,而不是将消息框本身定义为rtl

我的答案是创建支持rtl对齐的新消息框:

Ext.Msg.show({
    rtl: true,
    title: "...",
    msg: "...",
    buttons: Ext.MessageBox.OK,
    icon: Ext.MessageBox.Error,
    renderTo: Ext.getBody()
});
var message = Ext.create('Ext.window.MessageBox', {rtl: true});
然后我可以这样使用它:

message.show({
    title: "...",
    msg: "...",
    buttons: Ext.MessageBox.OK,
    icon: Ext.MessageBox.Error,
});

谢谢你的回答。正如我指出的,我的其他组件,如窗口、面板等,从右到左对齐,没有任何问题。我唯一的问题是消息框。