2016-11-11 1 views
2

이유는 무엇입니까 잘이 작품 :내용 UIB - 도구 설명 - HTML에 추가

컨트롤러 :

$scope.getHtml = $sce.trustAsHtml("<div>Test</div>"); 

보기 :

<div uib-tooltip-html="getHtml">Test</div> 

하지만 전혀 작동하지 않는 것은? ;-(

컨트롤러 :

$scope.getHtml = function(){ 
     var textOutput = "<div>Text</div>"; 
     return $sce.trustAsHtml(textOutput);   
    }; 

보기 : angular.min.js : 6 catch되지 않은 오류 : [$의 rootScope : infdig]


<div uib-tooltip-html="getHtml()">Test</div> 

오류 메시지는

편집 1 : 원래 문제가 해결되었습니다.하지만 이번에는 다른 질문이 있습니다. <div>이 위트라면 어떻게 될까요? han a ngRepeat와 ngRepeat 함수에 인수로 함수를 제공하고 싶습니까? 좋아요 <div uib-tooltip-html="getHtml({{item}})">Test</div> ?


편집 2 : 여기 내 문제에 대한 구체적인 예가 나와 있습니다.

<tr ng-repeat="object in objectArray"> 
    <td uib-tooltip-html="getHtml(object.value1)">{{object.value1}}<td> 
    <td uib-tooltip-html="getHtml(object.value2)">{{object.value2}}<td> 
    <td uib-tooltip-html="getHtml(object.value3)">{{object.value3}}<td> 
</tr> 

$scope.getHtml = function (value) { 
    var textOutput = doSomethingWithObjectDataAndCreateHtmlFromIt(value); 
    return $sce.trustAsHtml(textOutput);   
} 

으로하지만이 작동하지 않습니다 :이 같은 작업 할. 내가 uib-tooltip-html 대신 uib-tooltip을 사용할 때 정확한 HTML (해석되지 않은)이 표시된 툴팁을 볼 수 있지만, uib-tooltip-html으로 변경하면 다시 오류가 발생합니다.

답변

0

첫 번째 케이스 $scope.getHtml문자열입니다. 경우 $scope.getHtml에서

는 첫 번째 경우와 같은 문자열을 리턴하는 함수인 것으로 끝난다. 당신이 NG 반복에서 HTML 데이터를 전달하려면

$scope.getHtml = function() { 
    var textOutput = "<div>Text</div>"; 
    return $sce.trustAsHtml(textOutput);   
}() 

것은, 바로이 작업을 수행 : 두 번째 경우에 대비하여 함수를 호출하는 경우가 본질적으로 같은 코드로

그러나, 일 것이다 :

$scope.getHtml = function (html) { 
    return $sce.trustAsHtml(html);   
} 

를하고하여 사용

<div uib-tooltip-html="getHtml()">Test</div> 
+0

아! 정말 고맙습니다! 하루 종일이 일에 보냈다 : D –

+0

이제 나는 이것에 대해 하나 더 질문한다. 내가 원래 게시물을 편집했습니다. –

+0

템플릿 구문을 제거하면 잘 작동합니다.

Test