2016-03-22 801 views
0

Ich habe eine App, die Ansichten mit Mathml anzeigt. Die Math-Tags werden nicht verarbeitet. Ich muss die Seite aktualisieren, damit sie verarbeitet werden können.Angular JS Mathml-Ansichten werden nicht verarbeitet

Meine Ansicht enthält einen Controller und MathML-Tags wie:

moment lone.html:

<math xmlns="http://www.w3.org/1998/Math/MathML"> 
    <msub><mi>I</mi><mn>x</mn></msub><mtext>&nbsp;et&nbsp;</mtext><msub><mi>I</mi><mn>y</mn></msub> 
</math> 

Angular App Routing

var mid = angular.module('mid', [ 
    'ngRoute' 
]). 
config(['$routeProvider', function($routeProvider) { 
    $routeProvider. 
    when("/moment", {templateUrl: "moment-lone.html", controller: "momentCtrl"}). 
    otherwise({redirectTo: 'index'}); 
}]); 

Die view.html App funktioniert. Die erwarteten Tags werden jedoch nicht von mathjax verarbeitet, da sie vor den Tags geladen wurden. Und das nutzt Chrome. In Firefox sind sie bei Belastung sichtbar. Ich denke Firefox hat native Unterstützung für Mathml.

+0

Frage ist unklar. Was meinst du mit "nicht verarbeitet"? Was ist dein Beitrag? Was ist dein erwartetes Ergebnis? Zeigen Sie ein vollständiges Beispiel für Code, mit dem Sie Probleme haben. Was hast du bisher versucht? –

+0

Ich sehe Klartext auf der Seite anstelle des Mathml-Formats. Diese Zeile würde wie "Ix et Iy" aussehen. – MadeInDreams

+0

Sie müssen MathJax anweisen, den Inhalt der Website neu zu rendern, wenn die Ansicht geändert wird. –

Antwort

0
$scope.data = '<p><math xmlns="http://www.w3.org/1998/Math/MathML"><mfrac bevelled="true"><mrow><mo>(</mo><msup><mi>B</mi><mn>2</mn></msup><mo>&#177;</mo><msqrt><mn>4</mn><mi>a</mi><mi>c</mi></msqrt><mo>)</mo></mrow><mrow><mn>2</mn><mi>A</mi></mrow></mfrac></math></p>'; 

in HTML

<div ng-bind-html="mathmltext(title)"></div> 

in app.js

$scope.mathmltext= function(html_code){  
return $sce.trustAsHtml(html_code); 

}

Vergessen Sie nicht, $ sce in Controller wie

app.controller("Cntrl", function($scope,$sce) { 
zu geben

}

Sie die Ausgabe wie

(B2 ± 4ac) bekommen 2A