2017-06-13 3 views
1

Angenommen, ich habe folgendes svg ElementPass ‚dieses‘ Objekt auf einen Winkelfilter

<svg> 
    <text ng-bind-html="input | filter:arg" >this is a txt<text> 
</svg> 

Ich mag die Filter verwenden, um dieses text Element zu aktualisieren und mehr <tspan>, um es hinzuzufügen. Um dies zu tun, muss ich this an meinen Filter übergeben, so dass es an die Elemente mit Javascript anfügt. Wie erreiche ich das? Wie geht man this element zu einem Winkelfilter?

+0

"this" Steuerungsbereich bedeuten Sie? –

+0

"Dies" bedeutet das Objekt ' ' –

Antwort

0

Ich denke, ein besserer Ansatz ist ein Attribut Typ directive

In Ihrem Fall verwenden Sie so etwas wie dieses

<svg> 
    <text custom-bind-html="{{input}}" filter="{{args}}">this is a txt<text> 
</svg> 

Auf diese Weise schreiben konnte man sowohl die input und args Modelle über die attrs zugreifen und das Element während der Richtlinie.

myApp.directive('customBindHtml', function ($sce) { 
    'use strict'; 
    return { 
    restrict: 'A', 
    scope: {}, 
    link: function (scope, element, attrs) { 
     function applyFilter(input, filter) { 
      // modify your input with filter and return it trusted by $sce 
      return $sce.trustAsHtml(input); 
     } 
     var output = applyFilter(attrs.customBindHtml, attrs.filter); 
     angular.element(element).html(output); 
    } 
    }; 
}); 

$sce Anbieter können Sie den Inhalt sichern Vertrauensrichtlinie Fehler zu vermeiden (standardmäßig aktiviert)

JSFiddle example