2017-12-16 28 views
0

AngularJS 컨트롤러 또는 서비스에서 지시어와 함께 제공되는 작은 HTML 템플릿을 "컴파일/보간/뭐든지"처리 할 수 ​​있으며 최종 HTML 출력을 문자열로 가져올 수 있습니까?AngularJS가 지시어로 HTML을 컴파일하고 문자열로 출력합니까?

자세한 내용은 내 템플릿이 var html = '<span my-directive="myVariable"></span>'이고 my-directive가 myVariable을 조작하는 동안 추가 html을 추가한다고 가정 해 보겠습니다. (그것이 올바른 방법입니다 있는지 확실하지 않습니다)

지금, 나는 그 HTML $compile(html)({myVariable: myVariable})를 컴파일하고 싶은 마지막 최종 결과 문자열로 전체 HTML을 갖는

<span my-directive="myVariable"> 
 
<span>additional content added by my amazing directive while manipulating myVariable</span> 
 
</span>

이 아이디어를 어떻게 얻을 수 있을까요? 모든 조언은 높이 평가됩니다.

건배 :)

답변

0

당신은 그것에 대해 $의 SCE를 사용할 수 있습니다

$scope.variable = $sce.trustAsHtml(yourHtmlString); 

를 다음 HTML에서 사용할 필요가 :

<div ng-bind-html="variable"></div> 
0

$compile는 HTML 문자열이나 DOM을 컴파일 템플릿에 넣고 템플릿 함수를 생성 한 다음 scope과 템플릿을 연결하는 데 사용할 수 있습니다.

컴파일 된 지시어를 다른 지시문에 추가하는 경우 link 함수 안에서 수행 할 수 있습니다.

var str = '<div my-directive>Hello world</div>' 
var com = $compile(str)(scope); 
element.append(com); 

위 코드의 링크 기능에 표시된대로 $ compile을 사용할 수 있습니다.

예제는 Plnkr Example에서 제공됩니다.

+0

내가 정확히 필요한 것은 아닙니다. 최종 결과가 문자열로 더 필요합니다 (지시어가 실행 된 최종 완전한 html). 나는 그것을 돈 요소에 추가하지 않고 오히려 $ translate 서비스의 translate-value에 주입하려고합니다. – Mauro