Ich habe ein Problem mit einem Zeichen in IE11. Es wird in einer Jade-Vorlage in einer eckigen Direktive verwendet, und es ist nur ein Problem in IE11.
Ich habe zwei Span-Tags, das erste enthält das Zeichen ">" und das folgende enthält ein {{var}}. Die Variable wird wörtlich als "{{var}}" im Browser anstelle von "val" gedruckt, aber wenn ich den ersten Inhalt des Bereichs in irgendeinen anderen Bereich ändere, wird {{var}} als "val"
Ich habe versucht, die HTML-Entität ( ›
) zu verwenden, und es bricht sie immer noch. Ich habe mehrere andere HTML-Entitäten ausprobiert und sie funktionieren gut.
Es scheint, dass es ein Problem mit diesem spezifischen Charakter ist. Weiß jemand, warum das ist?
Hier ist der Code:
%Vor%Hier ist die Ausgabe:
Ich habe dieses Problem mit dem Doppelwinkel-Zeichen direkt in meinem Code gesehen. Ich habe auch gefunden, wenn ich den ndash Charakter verwende. Die Lösung, die ich gefunden habe, war, das ng-bind-template-Attribut überall dort zu verwenden, wo Sie diese lustigen Zeichen verwenden möchten.
%Vor%oder
%Vor%Das zugrundeliegende Problem ist, dass IE die JavaScript-Verarbeitung von DOM-Elementen mit diesen Zeichen beendet (obwohl ich mir nicht sicher bin, warum). Es wird nur für das Element, das dieses Zeichen enthält, und für alle untergeordneten Elemente eine Sandbox verwendet.
Es passiert nur, wenn das Zeichen direkt im HTML-Code erscheint, während die Seite geladen wird. Deshalb, wenn Sie es in die ng-bind-template-Direktive einfügen, sieht der IE es erst, nachdem alles geladen ist und alles verarbeitet hat.