4

перед публикацией здесь я искал и искал, и я нашел несколько решений для применения всплывающих подсказок к отключенным кнопкам, в любом случае ни один из них не использовал uib-tooltip от angular ui bootstrap.Как отображать подсказку ui-boostrap при отключенной кнопке?

Вот код моей кнопки:

<button class="btn btn-default" 
     uib-tooltip="My tooltip text" 
     tooltip-append-to-body="true" 
     ng-disabled="!isAllSelected" 
     ng-click="doThat()">Click Here 
</button> 

Вы знаете, как сделать подсказку отображаемой даже при отключении кнопки?

+0

Я не думаю, что он будет работать так, как если бы кнопка была отключена, никакое событие не будет запущено. Лучше отключить кнопку с помощью CSS, добавив класс. – Ved

+0

вы должны обернуть кнопку в элемент. после этого вы можете активировать всплывающую подсказку для элемента. – Hans

ответ

-1

Независимо от того, включена или отключена кнопка, я получаю подсказку uib. Следующий код работает отлично для меня.

<button type="button" class="btn btn-sm btn-default" ng-click="toggleMin()" ng-disabled = "true" uib-tooltip="After today restriction" >Min date</button> 

Пожалуйста, ознакомьтесь plunker

Добавлена ​​скриншотом подсказки enter image description here

Дополнительных примечания: Вы также можете настроить положение подсказки. Все, что вам нужно сделать, это взять с собой $uibTooltipProvider. Затем мы можем использовать конфигурационный раздел для достижения результата. Ниже код включен в плункер.

angular.module('ui.bootstrap.demo') 
.config(['$uibTooltipProvider', function ($uibTooltipProvider) { 
    $uibTooltipProvider.options({ 
     'placement':'bottom' 
    }); 
}]) 
+0

Ehm ... я пробовал ваш код, но ни одна подсказка не отображается на вашей отключенной кнопке. – smartmouse

+0

Какую версию angular.js, boostrap.css и angularanimate.js вы используете? Что это? –

+0

Я пытаюсь пример вашего плункера. На отключенной кнопке нет подсказки. – smartmouse

3

Я не думаю, что это возможно на кнопке, но это работает, если вы используете ссылку, замаскированную в качестве кнопки, вместо кнопки:

<a class="btn btn-default" 
    uib-tooltip="My tooltip text" 
    tooltip-append-to-body="true" 
    ng-disabled="!isAllSelected" 
    ng-click="doThat()">Click Here 
</a> 
+1

Недостатком этого является то, что элемент без ввода или без кнопки, например, тег , не заботится об отключенном атрибуте и по-прежнему будет доступен для клика. – Shahar

0

Простейших, ненавязчивое решением этой проблемы является :

<a class="btn btn-default" 
    uib-tooltip="My tooltip text" 
    tooltip-append-to-body="true" 
    ng-disabled="!isAllSelected" 
    ng-click="isAllSelected ? doThat() : null">Click Here 
</a> 

(обратите внимание условную ng-click, без которого щелкает по-прежнему будут проходить даже тогда, когда якорь «отключен» - то есть якоря не поддерживают инвалид атрибута)

+0

Таким образом вы вводите некоторую логику в представлении, и это неправильный подход для приложений MVC. – smartmouse

+0

просто иллюстрирует необходимость условия - тривиально разместить внутри 'doThat' – d3vtoolsmith