Extjs Sencha Touch和MathJax

Extjs Sencha Touch和MathJax,extjs,mathjax,Extjs,Mathjax,我正在尝试使用Ext.Label组件和MathJax JS在Sencha视图组件(extends:Ext.Container)中显示数学公式。(有人建议回答我的另一个问题:) 这是视图组件的初始化: Ext.define('TIQuiz3.view.Question', { extend: 'Ext.Container', ... requires: ['Ext.Label', ...], config: { fullscreen: true, ... layout:

我正在尝试使用Ext.Label组件和MathJax JS在Sencha视图组件(extends:Ext.Container)中显示数学公式。(有人建议回答我的另一个问题:)

这是视图组件的初始化:

Ext.define('TIQuiz3.view.Question', {
extend: 'Ext.Container',
...
requires: ['Ext.Label', ...],


config: {
    fullscreen: true,
    ...
    layout: {
        type: 'vbox',
        align: 'stretch'
    }
},

initialize: function() {
    this.callParent();
    ...
    var questionLabel = {
        xtype: 'label',
        style: {
            'border':'1px solid black',
            'background':'white'
        },
        margin: 10,
        padding: 10,
        html: "<div>Es sei $L = \{011, 01, 11, 100\}$ \"uber dem Alphabet $\Sigma = \{0,1\}$.</div>",
        flex: 1
    };
    ...
    this.add([...,questionLabel,...]);

}
listeners : {
  order : 'after',
  painted : function() {
    MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
  }
}
MathJax指示要成功加载

但是标签的输出不能正确显示数学。相反,它看起来就像这样:

Es sei$L={01101,11100}$“uber dem字母表$Sigma={0,1}$

是否可以使用Sencha标签组件使用MathJax和HTML显示数学

任何建议,谢谢

谢谢,
托马斯

好的,谢谢彼得,这让我想到了解决方案

问题确实是在页面的onload事件之后呈现内容

对于这些情况,MathJax持有一个稍后手动调用排版的方法

Ext.define('TIQuiz3.view.Question', {
extend: 'Ext.Container',
...
requires: ['Ext.Label', ...],


config: {
    fullscreen: true,
    ...
    layout: {
        type: 'vbox',
        align: 'stretch'
    }
},

initialize: function() {
    this.callParent();
    ...
    var questionLabel = {
        xtype: 'label',
        style: {
            'border':'1px solid black',
            'background':'white'
        },
        margin: 10,
        padding: 10,
        html: "<div>Es sei $L = \{011, 01, 11, 100\}$ \"uber dem Alphabet $\Sigma = \{0,1\}$.</div>",
        flex: 1
    };
    ...
    this.add([...,questionLabel,...]);

}
listeners : {
  order : 'after',
  painted : function() {
    MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
  }
}
请注意,正如Peter所指出的,为了让upper工作,必须将$配置为接受MathJax的数学分隔符,这不是默认行为


谢谢你的建议!

Urgs…意外删除了我的评论。你能确认这不仅仅是因为$s不是MathJax中的默认分隔符吗?也就是说,你是否尝试过\(…\)或[…]显示样式?确认,谢谢你的评论。我尝试过\(…\)我在使用过的配置文件中添加了$作为默认内联分隔符。我还尝试使用块数学。此外,我认为我必须使用双\\因为在JS字符串中解释器\作为转义字符。这些都不起作用。太好了。这可能是时间问题吗?例如,在内容到达DOM后,是否调用MathJax进行排版?