Angular不会限制您使用与ui-bootstrap中相同名称的指令。这并不意味着您要覆盖它们(尽管您可以这样做),只是增加了应用。只要不破坏其原始功能,您可以执行以下操作:
app.directive("popover", function () {
return {
restrict: 'EA',
priority: -1000, // Run last
link: function (scope, element) {
element.addClass("my-popover");
scope.$watch('tt_isOpen', function (value) {
if (value) {
element.addClass("open");
} else {
element.removeClass("open");
}
});
}
};
});
app.directive("tooltip", function () {
return {
restrict: 'EA',
priority: -1000, // Run last
link: function (scope, element) {
element.addClass("my-tooltip");
scope.$watch('tt_isOpen', function (value) {
if (value) {
element.addClass("open");
} else {
element.removeClass("open");
}
});
}
};
});
然后定义样式,例如:
.my-popover.open {
background-color: red;
}
.my-tooltip.open {
font-style:italic;
color: orange;
}
很遗憾,您在某种程度上依赖于原始实现细节(这个 tt_isOpen
到底是从哪里来的)。
在这里查看链接。