在Typescript / Angular2组件中使用MathJax

时间:2017-06-26 13:43:28

标签: angular typescript import global mathjax

我在我的angular2组件中调用MathJax.Hub函数时遇到了问题。我昨晚在这个问题上挣扎了好几个小时。我需要调用MathJax API来重新呈现一些动态绑定的InnerHTML字符串。问题是,无论我如何导入MathJax模块或npm安装它,我都无法访问component.ts中的MathJax全局变量。我通过尝试MathJax.version验证了这一点,并且编译器抱怨无法找到未定义的版本。

我在我的模块中运行了npm install MathJax。运行npm install @typings mathjax。尝试过导入mathjaxdirective。在mathjax install上提供的示例HTML中,我可以看到正确应用了格式。在我的打字稿中访问MathJax全局变量的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

我实际上找到了解决方法。 http://ruinshe.moe/2016/05/31/support-mathjax-in-angular2/非常有帮助。我几乎完全像那样实现它。只有差异是@components中的指令被折旧,所以我在apps.module中声明了它。

答案 1 :(得分:2)

我找到了一个简单的解决方案。它如下:

  1. index.html

    中添加以下代码
        <script type="text/x-mathjax-config">
            MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});
        </script>
        <script type="text/javascript" async
                src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_CHTML">
        </script>
    
  2. 在打字稿文件中添加此行作为导入:

        declare var MathJax:any;
    
  3. 使用mathjax:

        MathJax.Hub.Queue(["Typeset", MathJax.Hub]);