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
から来たのか)。
ここでチェックしてください。