uib-tooltip: условно показать или скрыть всплывающую подсказку

Я хочу условно включить/отключить всплывающую подсказку на кнопке. Я сделал это, чтобы проверить состояние отключения:

<button type="button" 
    uib-tooltip="test" tooltip-is-open="false">
</button>

Но всплывающая подсказка показывает. Как отключить всплывающую подсказку?

спасибо

Ответы

Ответ 2

В чем проблема? Это четко указано в документах с примером.

Вы должны использовать флаг tooltip-is-open.

var app = angular.module("sa", ["ui.bootstrap"]);

app.controller("FooController", function($scope) {

  $scope.tooltipState = false;

  $scope.toggleTooltip = function() {
    $scope.tooltipState = !$scope.tooltipState;
  };
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/1.3.1/ui-bootstrap-tpls.min.js"></script>

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">


<div ng-app="sa" ng-controller="FooController">

  <button class="btn btn-primary" type="button" uib-tooltip="Hello!" tooltip-placement="right" tooltip-is-open="tooltipState">I'll have a tooltip
  </button>
  <br>

  <br>
  <a href="" ng-click="toggleTooltip()">Toggle tooltip</a>
  <br>
  <a href="" ng-click="tooltipState = !tooltipState">Toggle tooltip without scope method</a>
</div>

Ответ 3

Этот сценарий не совсем соответствует тому, что вы искали, но я обнаружил, что мне нужно использовать комбинацию tooltip-trigger = "none" и tooltip-is-open. Например:

<form name="formName">
    <input name="inputName" type="text" required uib-tooltip="Required*" tooltip-placement="left" tooltip-trigger="none" tooltip-is-open="formName.inputName.$touched && formName.inputName.$invalid" />
</form>

Надеюсь, это поможет кому-то.