[英]add content to uib-tooltip-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);
};
視圖:
<div uib-tooltip-html="getHtml()">Test</div>
錯誤消息是:angular.min.js:6未捕獲的錯誤:[$ rootScope:infdig]
編輯1:謝謝,原來的問題解決了。 但是現在我對此有另一個疑問。 如果<div>
在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
而不是uib-tooltip-html
我可以看到其中帶有正確html(未解析)的工具提示,但是如果將其更改為uib-tooltip-html
, uib-tooltip-html
再次出現錯誤。
在第一種情況下, $scope.getHtml
最終是一個string 。
在第二種情況下, $scope.getHtml
最終是一個function ,它返回與第一種情況相同的字符串。
但是,如果您在第二種情況下調用函數,則它將起作用,因為它實質上是相同的代碼:
$scope.getHtml = function () {
var textOutput = "<div>Text</div>";
return $sce.trustAsHtml(textOutput);
} ()
如果要在ng-repeat中傳遞html數據,請執行以下操作:
$scope.getHtml = function (html) {
return $sce.trustAsHtml(html);
}
並通過以下方式使用它:
<div uib-tooltip-html="getHtml()">Test</div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.