如何在使用mathjax从服务器查看html时避免对angularjs进行解析错误

时间:2015-12-19 11:42:06

标签: javascript angularjs ckeditor mathjax

我正在尝试在angularjs中使用mathjax。我在服务器中有很多html内容,它也需要编辑。 这是我用来触发mathJax渲染的指令。

app.directive("mathTex", ['$log',function($log) {
return {
    restrict: "C",
    link: function(scope, element, attributes) {
      var currentElement = element[0];
      //alert("mathJax directive called");
      MathJax.Hub.Queue(["Typeset", MathJax.Hub, element[0]]); 
    }
}}]);

我正在使用另一个指令来编译范围内任何更改的html。

app.directive('dynamicHtmlCompile', ['$compile','$parse','$log','$sanitize', function ($compile, $parse, $log, $sanitize) {
    return {
    restrict: 'A',
    replace: true,
    link: function (scope, ele, attrs) {
      scope.$watch(attrs.dynamicHtmlCompile, function(html) {
        ele.html(html);
        $compile(ele.contents())(scope);
      });
    } 
  }
}]);

这两个指令都适用于正常情况,但适用于

等表达式

<span class="math-tex">\({{2v}}/2\)</span>,由于表达式中的花括号,它会触发错误。

Error: [$parse:syntax] Syntax Error: Token 'v' is an unexpected token at column 2 of the expression [2v] starting at [v].

编辑内容我正在使用mathjax和ckeditor。它也可以正常工作。

到目前为止,我尝试了'ng-html-bind',我无法使用它,因为它不支持双向绑定。另一种选择是更改插值开始和结束符号。我在项目中使用了一些库,我不想搞砸只是为了解决这个问题。

我可以控制html的来源,如果有必要,我可以选择更改(可能,查找和替换)格式或文本。任何建议,将不胜感激。

谢谢

0 个答案:

没有答案