这很棘手。如果您正在使用angular-foundation(我真的推荐使用它),你可以修改官方酥料饼的模板是HTML不安全 - 比你可以使用popovers HTML:
JS
"use strict";
// app definition - don't forget to include angular-foundation module
angular.module("app", ["mm.foundation"]);
// just o controller, nothing special
angular
.module("app")
.controller("MainController", MainController);
function MainController() {
var vm = this;
vm.name = "John Doe"
vm.email = "[email protected]"
}
// unsafe filter - this is used in the template below
angular
.module("app")
.filter("unsafe", unsafe)
function unsafe($sce) {
return function (val) {
return $sce.trustAsHtml(val);
};
};
// oficial popover template modification
angular
.module("template/popover/popover.html", [])
.run(["$templateCache", function($templateCache) {
$templateCache.put("template/popover/popover.html",
"<div class=\"joyride-tip-guide\" ng-class=\"{ in: isOpen(), fade: animation() }\">\n" +
" <span class=\"joyride-nub\" ng-class=\"{\n" +
" bottom: placement === 'top',\n" +
" left: placement === 'right',\n" +
" right: placement === 'left',\n" +
" top: placement === 'bottom'\n" +
" }\"></span>\n" +
" <div class=\"joyride-content-wrapper\">\n" +
" <h4 ng-bind-html=\"title | unsafe\" ng-show=\"title\"></h4>\n" +
" <p ng-bind-html=\"content | unsafe\"></p>\n" +
" </div>\n" +
"</div>\n" +
"");
}]);
HTML
<main ng-app="app" ng-controller="MainController as vm">
<div class="row">
<div class="small-12 column">
<div popover="{{vm.name + '<br />' + vm.email}}" popover-trigger="mouseenter">
<h1>Hover me!</h1>
</div>
</div>
</div>
</main>
在这里你正在工作CodePen example。
你也可以制作自己的指令,同时拥有HTML安全弹出框和HTML不安全弹出框 - 或者你可以使用tooltip,它支持默认的HTML不安全(指令tooltip-html-unsafe
)。
有趣!我想这是一个解决方案。唯一的问题是,每次更新角度基础时,你都必须一遍又一遍地做这件事。我想知道是否有更简单,更持久的解决方案?如果几天后我没有听到别人的消息,我会用你的答案作为答案。谢谢! – JCC
@JDC您不必修改库本身,因此不需要每次更新都修改角度基础。您可以简单地将修改放入您自己的文件中 - 它会覆盖原始模板:-) –
谢谢。我结束了使用你的代码。具体而言,对于未来可能需要解决方案的人员,我使用Akarienta的JS文件中的“不安全过滤器”和“官方弹出窗口模板修改”下的代码块。你只需要将它包含在你的任何角度文件中。请务必将.module(“app”)“app”更改为您在ng-app中使用的任何内容。另外,您还要确保在mm.foundation加载后您的文件位于资产管道中,以便此修改代码可以覆盖原始文件。 – JCC