$sce.trustAsHtml 返回值未被 $compile 编译
$sce.trustAsHtml returned value not compiled by $compile
我正在尝试使用 angular bootstrap-ui popover with fullcalendar's events as described here: Getting Angular UI Calendar to work with UI-Bootstrap Tooltips
制作一个带有 html 的自定义弹出框
但我需要使用更复杂的弹出窗口,需要使用 uib-popover-html
如下:
$scope.eventRender = function( event, element, view ) {
var test = $sce.trustAsHtml('<b> Hello World! </b>');
element.attr({'uib-popover-html': test,
'popover-trigger' : 'mouseenter',
'popover-append-to-body': true});
$compile(element)($scope);
};
但是当它抛出以下错误时:
Error: [$parse:syntax] Syntax Error: Token '<' not a primary
expression at column 1 of the expression [ Hello World! ]
starting at [ Hello World! ].
我做错了什么?
基于此 issue,我的假设是 uib-popover-html
甚至不打算工作。
但有解决方法:只需使用 uib-popover-template
代替:
$scope.eventRender = function(event, element, view) {
element.attr({
'uib-popover-template': "'myTooltipTemplate'",
'popover-trigger': 'mouseenter',
'popover-append-to-body': true
});
$compile(element)($scope);
};
这里有一个 fiddle 可以玩:http://jsfiddle.net/masa671/4wf31bkw/
我正在尝试使用 angular bootstrap-ui popover with fullcalendar's events as described here: Getting Angular UI Calendar to work with UI-Bootstrap Tooltips
制作一个带有 html 的自定义弹出框但我需要使用更复杂的弹出窗口,需要使用 uib-popover-html
如下:
$scope.eventRender = function( event, element, view ) {
var test = $sce.trustAsHtml('<b> Hello World! </b>');
element.attr({'uib-popover-html': test,
'popover-trigger' : 'mouseenter',
'popover-append-to-body': true});
$compile(element)($scope);
};
但是当它抛出以下错误时:
Error: [$parse:syntax] Syntax Error: Token '<' not a primary expression at column 1 of the expression [ Hello World! ] starting at [ Hello World! ].
我做错了什么?
基于此 issue,我的假设是 uib-popover-html
甚至不打算工作。
但有解决方法:只需使用 uib-popover-template
代替:
$scope.eventRender = function(event, element, view) {
element.attr({
'uib-popover-template': "'myTooltipTemplate'",
'popover-trigger': 'mouseenter',
'popover-append-to-body': true
});
$compile(element)($scope);
};
这里有一个 fiddle 可以玩:http://jsfiddle.net/masa671/4wf31bkw/