>  기사  >  웹 프론트엔드  >  ng-bind-html을 사용하여 동적으로 포함된 Angular 템플릿을 컴파일하는 방법은 무엇입니까?

ng-bind-html을 사용하여 동적으로 포함된 Angular 템플릿을 컴파일하는 방법은 무엇입니까?

DDD
DDD원래의
2024-10-18 15:37:03588검색

How to Compile Dynamically Included Angular Templates with ng-bind-html?

angular.js: ng-bind-html을 사용하여 동적으로 포함된 HTML 코드 컴파일

angular.js로 작업할 때 시나리오가 발생할 수 있습니다. HTML 코드를 템플릿에 동적으로 포함해야 하는 경우 이를 달성하기 위해 일반적으로 ng-bind-html 지시문이 사용됩니다. 그러나 이 접근 방식을 사용하여 Angular 템플릿을 포함하려고 하면 해당 템플릿이 해석되지 않고 단순히 기능 없이 페이지에 포함될 수 있습니다.

해결책

대신 하드코딩된 템플릿을 사용하면 API 응답 내에 포함된 Angular 표현식을 컴파일할 수 있는 솔루션을 사용할 수 있습니다. 단계별 가이드는 다음과 같습니다.

1단계: GitHub에서 angle-bind-html-compile 지시어를 설치합니다: https://github.com/incuna/angular-bind -html-compile

2단계: Angular 모듈에 지시문을 포함합니다.

<code class="javascript">angular.module("app", ["angular-bind-html-compile"])</code>

3단계: Angular 모듈에서 지시문을 활용합니다. 다음과 같은 템플릿:

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

예:

컨트롤러 개체:

<code class="javascript">$scope.letter = { user: { name: "John" } };</code>

JSON 응답 :

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

HTML 출력:

<code class="html"><div bind-html-compile="letterTemplate.content"> 
   <span>Dear John,</span>
</div></code>

설명:

Angular-bind- html-compile 지시어는 bin-html-compile 속성에 제공된 표현식의 변경 사항을 감시합니다. 값이 변경되면 요소의 HTML 콘텐츠가 업데이트되고 $compile 서비스를 사용하여 요소 내의 모든 Angular 표현식이 컴파일됩니다. 이를 통해 ng-bind-html을 사용하여 Angular 템플릿을 동적으로 포함하고 실행할 수 있습니다.

추가 참조:

참조용 관련 지시문 코드는 다음과 같습니다.

<code class="javascript">(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);
                });
            }
        };
    }]);
}());</code>

위 내용은 ng-bind-html을 사용하여 동적으로 포함된 Angular 템플릿을 컴파일하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.