[英]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.