프로그래밍 언어/HTML,CSS,JS

AngularJS 컨트롤러에서보기에 HTML 삽입

Rateye 2021. 6. 17. 21:08
728x90
반응형
질문 : AngularJS 컨트롤러에서보기에 HTML 삽입

AngularJS 컨트롤러에서 HTML 조각을 만들고이 HTML을보기에 표시 할 수 있습니까?

id: value 쌍의 중첩 된 목록으로 전환해야하기 때문입니다. 따라서 HTML 이 컨트롤러에서 생성되고 이제이를 표시하려고합니다.

모델 속성을 만들었지 만 HTML을 인쇄하지 않고는 뷰에서 렌더링 할 수 없습니다.

최신 정보

생성 된 HTML을 따옴표 안의 문자열로 각도 렌더링하여 문제가 발생하는 것으로 보입니다. 이 문제를 해결하기 위해 노력할 것입니다.

컨트롤러 예 :

var SomeController = function () {

    this.customHtml = '<ul><li>render me please</li></ul>';
}

보기 예 :

<div ng:bind="customHtml"></div>

제공 :

<div>
    "<ul><li>render me please</li></ul>"
</div>
답변

Angular 1.x의 경우 ng-bind-html 을 사용하십시오.

<div ng-bind-html="thisCanBeusedInsideNgBindHtml"></div>

이 시점 attempting to use an unsafe value in a safe context 발생하므로이를 해결 하려면 ngSanitize 또는 $ sce를 사용해야합니다.

$sce.trustAsHtml() 을 사용하여 html 문자열을 변환하십시오.

 $scope.thisCanBeusedInsideNgBindHtml = $sce.trustAsHtml(someHtmlVar);

두 단계가 있습니다.

  1. angular-sanitize.min.js 리소스를 포함합니다.
    <script src="lib/angular/angular-sanitize.min.js"></script>
  2. js 파일 (controller 또는 일반적으로 app.js)에 ngSanitize를 포함합니다.
    angular.module('myApp', ['myApp.filters', 'myApp.services', 'myApp.directives', 'ngSanitize'])

 

출처 : https://stackoverflow.com/questions/9381926/insert-html-into-view-from-angularjs-controller
728x90
반응형