Mathjax加载但不格式化-使用Angular文件,可能还会丢失文件

时间:2019-01-03 18:02:17

标签: angularjs angular-directive mathjax

我有一个angular 1应用程序,它使用mathjax格式化一些数学运算。用户可以更改方程式,然后我的程序可以解决问题并显示解决方案。我有一个指令来监视方程式的文本,当它更改时,mathjax将重新计算div并显示正确的解决方案。我用两个美元符号记下了要设置mathjax格式的文本的开头和结尾。

这在大多数情况下都可以正常工作。

但是,有时一切正常加载,伪指令像正常情况一样绑定到文本,并且对div求值。但是,没有显示mathjax格式的文本,而是保留了带有美元符号的未格式化文本。

我可以更改文本的值,并查看div的重新评估,但是对于mathjax,它仍然没有格式化。每当我打开控制台并查看错误时,似乎就会发生这种情况-好像这会使某些事情变得混乱。

我注意到,当mathjax正常工作时,通常会下载3个脚本-MathMenu.js,MathEvents.js,MathZoom.js。发生这种情况时,下载中似乎缺少MathMenu.js。

我已经追逐了一段时间,希望能收到任何建议。

Mathjax呼叫

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

指令

(function ()
{
    'use strict';

    angular
         .module('app.core')
         .directive('mathjaxBind', mathjaxBindDirective);

    /** @ngInject **/
    function mathjaxBindDirective()
    {   return {
        restrict: 'A',
        controller: ["$scope", "$element", "$attrs", function($scope, $element, $attrs) {
            $scope.$watch($attrs.mathjaxBind, function(value) {
                $element.text(value == undefined ? "" : '$$'+value+'$$');
                MathJax.Hub.Queue(["Typeset", MathJax.Hub, $element[0]]);
            });
        }]
    }
};   

})();

0 个答案:

没有答案