這裏是我解決這個問題,不知道這是否是最好的,但它的工作原理
HTML
<div elements-overflow-ellipsis>
<span class="font-bold no-margins"> {{name | translate}} </span>:
</div>
CSS
.basic-overflow-ellipsis {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
JS
(function() {
'use strict';
angular.module('dcElements')
.directive('elementsOverflowEllipsis', [ '$compile', function($compile) {
return {
restrict: 'A',
priority: 1000,
controller: ElementsOverflowEllipsisController,
controllerAs: '$ctrl'
}
} ]);
ElementsOverflowEllipsisController.$inject = [ '$scope', '$compile', '$element' ];
function ElementsOverflowEllipsisController($scope, $compile, $element) {
var $ctrl = this;
$ctrl.isEllipsisActive = isEllipsisActive;
activate();
function isEllipsisActive() {
return ($element[0].offsetWidth < $element[0].scrollWidth);
};
function activate() {
$element.addClass('basic-overflow-ellipsis');
if (!$element.attr('uib-tooltip')) {
$element.attr('uib-tooltip', $element.text());
$element.attr('tooltip-enable', "$ctrl.isEllipsisActive()");
$compile($element)($scope);
}
}
}
})();
如果你不確定如何r使用裝飾器來寫它不會「ng-if」或「ng-switch」做你需要的東西嗎?提供使用示例標記。如果它適用於值 – charlietfl
@charlietfl也可以使用指令編譯工具提示更新了問題。 – havenchyk
仍然不太清楚省略號的值在哪裏......或者確切地說使用工具提示需要什麼條件。這應該很簡單,使用'ng-if'。一個簡單的演示也可以幫助 – charlietfl