Si por ejemplo hago:

var = "<a>Asd</a>";

<span>{{ var }}</span>

La cadena se imprime como texto y no como html, así que ¿cómo puedo imprimir el html ?

InformationsquelleAutor itsme | 2014-01-20

3 Comentarios

  1. 41

    Usted debe utilizar ng-bind-html directiva.

    Crea un enlace que le innerHTML el resultado de la evaluación de la
    la expresión en el elemento actual de una manera segura.

    <ANY ng-bind-html="{expression}">
       ...
    </ANY>
    • muchas gracias hombre, pero lo que los medios de expresión?
    • la expresión puede ser variable o función. vamos a considerar var htmlString='<somehtml />', entonces debe ser <span ng-bind-html='htmlString'></span>
    • ahora lo que necesita para hacer referencia a ng-desinfectar para lograr esto. docs.angularjs.org/api/ngSanitize
  2. 9

    Antes de usar el ng-bind-html directiva debe incluir el $desinfectar servicio o se producirá un error.

    De Error: $sce:inseguro
    Requieren de un seguro de confianza valor
    Intentar utilizar una inseguro de valor en una caja fuerte contexto.

    Error: [$sce:unsafe] http://errors.angularjs.org/1.4.5/$sce/unsafe
        at Error (native)

    De la manera correcta:

    <script src="angular.js"></script>
    <script src="angular-sanitize.js"></script>
    var myApp = angular.module('app', ['ngSanitize']);
    myApp.controller('MyController', ['$scope', function($scope) {
      $scope.myHTML = '<a href="#">Hello, World!</a>';
    }]);
    <div ng-controller="MyController">
     <p ng-bind-html="myHTML"></p>
    </div>

    https://docs.angularjs.org/api/ngSanitize

    https://docs.angularjs.org/api/ng/directive/ngBindHtml

  3. 6

    También puede intentar algo como que:

     
    app.filter('to_trusted', ['$sce', function($sce) { 
    función de devolución(texto) { 
    return $sce.trustAsHtml(texto); 
    }; 
    }]); 
    
    

    y, a continuación, en la vista:

     
    ng-bind-html=" myHTML | to_trusted" 
    
    

Dejar respuesta

Please enter your comment!
Please enter your name here