2016-07-12 17 views
0

Ich habe eine Liste von Posts, die perfekt lädt, den gesamten Inhalt jedes Beitrags. Der HTML-Post-Inhalt ist eine Zeichenfolge in der Datenbankspalte. Jetzt möchte ich einen Link mehr an der von mir gewünschten Stelle erstellen und nur eine Postvorschau in der Liste anzeigen (ein Teil des HTML-Inhalts). Um das zu erreichen, schreibe ich einen Kommentar in die Posts. Es ist der Punkt, den Inhalt zu schneiden, um eine Vorschau zu bekommen. Wie kann ich den Inhalt manipulieren, bevor die ng-bind-html es lädt? Ich muss den ersten Kommentar erkennen und das Inhalts-HTML-Dokument bereinigen. Ich mache Tests in jquery, aber ich würde gerne wissen, wie es auf dem eckigen Weg zu tun ist.Html Vorschau des Blog-Post in Angular.js mit ng-bind-html

Ich denke, dass ein Filter innerhalb der ng-Bind-HTML-Ausdruck die Arbeit machen kann. Aber ich verstehe jetzt nicht, wie man den HTML-String innerhalb des Filters manipuliert. Manipulieren Sie wie JQuery-Syntax, weil ich eine Menge Tags entfernen und einige Sachen machen muss.

<script> 
    $(function() { 
     var com = $("*") 
      .contents() 
      .filter(function(){ return this.nodeType == 8;}) 
      .first(); 
     com.nextAll().remove(); 
    }); 
</script> 

Dank

Antwort

0

Sie können eine Funktion hinzufügen, die $sce unter Verwendung sanitize Service während ng-bind-html und erhalten Sie Zugriff auf die Zeichenfolge ausgeführt wird. Siehe den details auf $sanitise Service.

Innerhalb der ng-bind-html können Sie das DOM mit jqlite und native Javascript (mit $document Wrapper) manipulieren. Wenn die Manipulationen zu komplex sind, würde ich jquery direkt verwenden. Dazu müssen Sie nur include it before angular in Ihrem Index.html und angular.element statt $

verwenden