У меня есть угловое приложение, которое использует mathjax для форматирования математики.Пользователь может изменить уравнения, а затем моя программа решает проблемы и показывает решение.У меня есть директива, которая следит за текстом для уравнений, и когда он меняется, mathjax переоценивает div и показывает правильное решение.Я использую два знака доллара, чтобы отметить начало и конец текста для форматирования mathjax.
Это работает нормально большую часть времени.
Однако, иногда все загружается правильно, директивапривязка к тексту, как обычно, и вычисляется div.Тем не менее, текст в формате mathjax не отображается, а остается неформатированный текст, окруженный знаками доллара.
Я могу изменить значения текста и увидеть переоценку div, но он все еще остается неформатированным для mathjax,Похоже, это происходит всякий раз, когда я открываю консоль и наблюдаю за ошибками - как будто это приводит к тому, что что-то выходит из строя.
Я заметил, что обычно загружаются 3 сценария, когда mathjax работает должным образом - MathMenu.js, MathEvents.js, MathZoom.js.Когда это происходит, кажется, MathMenu.js отсутствует в загрузке.
Я уже некоторое время гоняюсь за этим и буду признателен за любые предложения.
Mathjax call
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]]);
});
}]
}
};
}) ();