在我的index.html中使用
<script type="text/javascript" src="../ext-all-rtl.js></script>
我试图使用属性 rtl:true 同样显示msgbox:
Ext.Msg.show({
rtl: true,
title: "...",
msg: "...",
buttons: Ext.MessageBox.OK,
icon: Ext.MessageBox.Error,
renderTo: Ext.getBody()
});
当显示rtl的消息不起作用时,它会显示组件ltr。
其他组件(如窗口,面板等)与rtl属性一起正常工作。
为了使用rtl功能,MessageBox还需要其他东西吗?
答案 0 :(得分:0)
&#34; rtl:true&#34; config在整个组件层次结构中继承,您应该只需添加&#34; rtl:true&#34;到层次结构中的顶级组件(通常是视口)。这消除了设置&#34;方向的任何需要:rtl&#34;你自己,因为rtl层次结构中的组件将具有&#34; x-rtl&#34;将类添加到其元素中。
您还需要确保使用rtl样式表,因为Ext JS组件需要相当多的特殊样式才能在rtl模式下正常工作。例如,对于经典主题,这将是:ext-theme-classic-all-rtl.css
如果您仍然遇到困难,请查看此示例:http://docs.sencha.com/extjs/4.2.1/extjs-build/examples/rtl/rtl.html?theme=classic
答案 1 :(得分:0)
好吧,可能我做得不对。
我将 rtl:true 参数传递给消息框的方法 show ,而不是将消息框本身定义为rtl。
我的答案是创建支持rtl对齐的新消息框:
var message = Ext.create('Ext.window.MessageBox', {rtl: true});
然后我可以像这样使用它:
message.show({
title: "...",
msg: "...",
buttons: Ext.MessageBox.OK,
icon: Ext.MessageBox.Error,
});