Ich versuche SVG-Symbole mit Angularjs mit html5Mode
auf True zu verwenden. Um html5mode
URLs zu verwenden, müssen Sie die basePath
im Kopf des HTML-Dokuments festlegen.Verwenden von SVG-Symbolen in Firefox mit AngularJS
<base href="/">
Ich dann laden alle meine Svg-Symbole in die index.html Seite als Symbole.
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" style="display:none">
<symbol id="user" viewBox="0 0 64 64">
<path d="...">
</symbol>
</svg>
ich kann nicht herausfinden, wie diese konsequent in Firefox zur Arbeit zu kommen. In Chrome und IE kann ich immer nur die Svg use
href auf die ID des Svg-Symbols setzen.
<svg ng-class="type" class="main-nav-icon">
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#user"></use>
</svg>
Keines der Symbole wird jedoch in Firefox angezeigt. Von einer vorherigen Frage wurde mir gesagt, dass dies wegen des Tags base
war. Also habe ich versuchte
<base href="http://localhost:5080/">
den base
-Tag auf eine absolute URL setzen und versuchte dann jede Kombination von URLs für den use
-Tag. Ich habe es schließlich zum Laufen gebracht, wenn ich eine absolute URL verwende, die auf dem ursprünglichen Pfad basiert, von dem die Seite index.html heruntergeladen wurde.
Zum Beispiel, wenn die Seite von http://localhost:5080/user
geladen wurde dann den use
Tag wie die folgenden Einrichtung wird die Symbole angezeigt werden:
<svg ng-class="type" class="main-nav-icon">
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://localhost:5080/user#user"></use>
</svg>
Diese Ordnung funktioniert, wenn der Benutzer rund um die App klicken. Wenn der Benutzer die Seite jedoch auf http://localhost:5080/photos
aktualisiert, werden alle Symbole erneut unterbrochen, da href
jetzt falsch ist. Also fing ich an, die ursprüngliche URL zu cachen, von der die Seite index.html geladen wurde. Aber auch dann, wenn einige Seiten aktualisiert werden, werden alle Symbole erneut unterbrochen.
Mit html5mode
mit AngularJS, was das Richtige ist den base
-Tag zu setzen und was das Richtige ist der use
Tag href zu setzen, um die Symbole zeigen, bis in IE, Chrome und Firefox zu machen?
Haben Sie versucht, die Basis href dynamisch über JavaScript in den Standort festlegen. href? –
Das würde das AngularJS Routing brechen, nicht wahr? – Bill
Haben Sie diese Frage/Antwort gesehen: http://StackOverflow.com/Questions/19742805/angular-and-svg-filters –