In einer aktuellen Frage (Reference Angular binding from javascript) fragte ich, wie man eine generierte SVG an ein bestimmtes div bindet. Ich habe zwei gute Antworten, an denen ich seither herumgebastelt habe.Rendern von SVG via Angular ng-bind-html
Ich versuche, ein SVG-Bild anzuzeigen, das basierend auf bestimmten Eigenschaften erstellt wird. Grundsätzlich
Ich habe einen kleinen Winkel Skript, das zur Erzeugung von SVG-Code eine Reihe von Funktionen enthält, zB:
.controller('ctlr',['$scope','$sce', function($scope,$sce) {
$scope.buildSvg(width, height, obj){
var img = ...call a lot of svg-functions
return $sce.trustAsHtml(img);
}
Meine Absicht ist, diese auf der Webseite enthalten über:
<div ng-bind-html="buildSvg(60,140,item)">svg should go here</div>
Wie auch immer, es fällt mir schwer, das zu erreichen, zumindest mit den Javascript-generierten SVG-Tags. Es funktioniert, wenn ich den Img-Code in eine andere $ scope-Variable kopiere (und eine Menge Escaping hinzufüge) und dann über ng- Bind-HTML.
Da der Code auf Plunker hier verfügbar: Example
ich die folgende Fehlermeldung erhalten:
Error: [$sce:itype] http://errors.angularjs.org/1.4.0/$sce/itype?p0=html
at Error (native)
at http://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js:6:416
at $get.trustAs (http://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js:140:269)
at Object.$get.d.(anonymous function) [as trustAsHtml] (http://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js:142:444)
at m.$scope.buildSvg (file:///C:/Dropbox/workspace/famview/public/javascripts/svgController.js:37:16)
at fn (eval at <anonymous> (http://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js:210:400), <anonymous>:2:301)
at Object.get (http://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js:115:108)
at m.$get.m.$digest (http://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js:131:221)
at m.$get.m.$apply (http://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js:134:361)
at http://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js:19:362
Muss ich irgendwie $ sce informieren Stringliterale in den SVG-Tags zu entkommen?
Hoffe, ich werde nicht eine -1 bekommen. Ich versuche nur zu helfen! ... Ich verdiene es nicht -1 ... Ich habe eine neue Antwort gegeben, weil ich die letzte nicht bearbeiten konnte. Jemand hat sie gelöscht, bevor ich sie bearbeiten konnte – ackuser