Maison >interface Web >js tutoriel >Comment compiler des expressions angulaires dans la directive Ng-Bind-HTML

Comment compiler des expressions angulaires dans la directive Ng-Bind-HTML

Barbara Streisand
Barbara Streisandoriginal
2024-10-18 15:32:03258parcourir

How to Compile Angular Expressions in Ng-Bind-HTML Directive

AngularJS ng-bind-html: Compiling Angular Code

Introduction

Ng-bind-html directive allows for the dynamic inclusion of HTML code in templates. While it works for basic HTML, angular templates are not interpreted when included. This article provides a solution to compile Angular expressions embedded within ng-bind-html.

Step-by-Step Solution

1. Install Directive:
Install the angular-bind-html-compile directive from GitHub: https://github.com/incuna/angular-bind-html-compile.

2. Include Directive in Module:

angular.module("app", ["angular-bind-html-compile"])

3. Use Directive in Template:

<div bind-html-compile="letterTemplate.content"></div>

Example Usage

Controller Object:

$scope.letter = { user: { name: "John"}}

JSON Response:

{ "letterTemplate":[
    { content: "<span>Dear {{letter.user.name}},</span>" }
]}

HTML Output:

<span>Dear John,</span>

Relevant Directive

(function () {
    'use strict';

    var module = angular.module('angular-bind-html-compile', []);

    module.directive('bindHtmlCompile', ['$compile', function ($compile) {
        return {
            restrict: 'A',
            link: function (scope, element, attrs) {
                scope.$watch(function () {
                    return scope.$eval(attrs.bindHtmlCompile);
                }, function (value) {
                    element.html(value);
                    $compile(element.contents())(scope);
                });
            }
        };
    }]);
}());

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn