ngBindHtml 与使用 angularUI 的模板中的 $sce.parseAsHtml 不同的结果

ngBindHtml different result than $sce.parseAsHtml in template that uses angularUI

编辑:找到解决方案!请参阅问题底部的解释。

我有一个指令 sfNgFieldWrapper,其中包含我从 angularjUI ui-bootstrap.

获得的工具提示

工具提示的文本设置为tooltip="{{ttpText}}"

问题在于文本包含 html 个实体,而这些实体未转换为正确的字符。 我不能使用 ng-bind-html 但我已经检查过,当我在跨度上使用它时,工具提示的文本已正确转换。 但是,我不能使用 span 和 ng-bind-html 因为我需要使用 tooltip.

为了解决这个困境,我想我会使用 $sce.pareAsHtml。问题是 html 实体没有正确转换为字符!

我在我的指令 link 函数中使用它,如下所示:

scope.ttpText = $sce.parseAsHtml(scope.ttpText);

为什么 parseAsHtml 不起作用而 ng-bind-html 起作用?

我无法将 parseAsHtml 放入 scope.$watch 中,因为这会触发循环。

TrustAsHtml 也不起作用。

工具提示函数绑定内容如下:

$document.find( 'body' ).append( tooltip );

解决方案

看了ui-bootstrap的代码后,专门搜索了Whosebug,发现了一个问题和解决方案类似的问题! Angular-ui tooltip with HTML

愚蠢的我也可以检查 AngularUI guide: http://angular-ui.github.io/bootstrap/#/tooltip

解决方法很简单,我在data-tooltip之后加上-html-unsafe就可以了。

解决方案

我还更新了问题以获得最大可见度。

看了ui-bootstrap的代码后,我开始专门为它搜索Whosebug,我发现了一个问题和解决方案相似的问题! Angular-ui 工具提示 HTML

愚蠢的我也可以检查 AngularUI guide: http://angular-ui.github.io/bootstrap/#/tooltip

解决方法很简单,我只要在data-tooltip.[=11之后加上-html-unsafe就可以了=]