Eckig: - Fehler: [$parse:syntax] Syntax Fehler
Möchte ich zum erstellen von QuickInfos in einer ng-repeat
mit Winkel-tooltips. Der Inhalt des tooltips muss dynamisch sein. Was ich schon habe ist so etwas wie dieses:
Anzeigen:
<div ng-repeat="region in regions">
<a tooltips tooltip-html="{{ myCtrl.generateTooltip(region) }}">HOVER</a>
</div>
Controller:
function generateTooltip(region) {
//generate some html here
var content = "<b>HELLO WORLD!</b>";
return $sce.trustAsHtml( content );
}
Der tooltip wird angezeigt und funktioniert, aber ich bekomme folgende Fehlermeldung in der Konsole (die ich nicht sehen möchte :-))
Error: [$parse:syntax] Syntax Error: Token '<' not a primary
expression at column 1 of the expression [<b>HELLO WORLD!</b>]
starting at [<b>HELLO WORLD!</b>].
- Was ist falsch an meinem code?
- Ist es möglich, mit Hilfe einer view als tooltip anstelle der Erzeugung des HTML-Codes in den controller? Es ist ein Attribut
tooltip-view
, aber ich weiß nicht, wie meinregion
- variable zu.
- Sie brauchen nicht die
{{ }}
hier; der Rückgabewert der Funktion ist das nicht ein Ausdruck, eckige muss, zu bewerten. - Wenn ich entfernen Sie die
{{ }}
der Inhalt des tooltip "myCtrl.generateTooltip(region)" 😉 - Versuchen Sie Folgendes (genau): "'<b>HELLO WORLD!</b>'" (einfache Anführungszeichen innerhalb der doppelten Anführungszeichen).
Error: [$sce:unsafe] Attempting to use an unsafe value in a safe context.
, ich bin zwar mit$sce.trustAsHtml()
...- Scheint, wie Sie nicht enthalten
angular-sanitize.js
. - Das war es! Vielen, vielen Dank! 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Jemand anderes hatte eine ähnliche Fehlermeldung, die aus einer Funktion ausgeführt, nachdem die Vorlage wurde erstellt von Winkel. Vielleicht dies wird Euch in die richtige Richtung.
Müssen Sie
angular-sanitize.js
die sanitize-Eingänge durch das Parsen der HTML-Code in tokens. Alle sicheren Token (von einer whitelist) werden dann serialisiert wieder richtig escaped HTML-string. Dies bedeutet, dass keine unsichere Eingabe machen kann es in den zurückgegebenen string.