具有Bootstrap 3和角度的条件工具提示

时间:2014-01-17 03:14:39

标签: angularjs twitter-bootstrap twitter-bootstrap-3

所以我可以获得工具提示出现在焦点上,但我有时只想要它们。我想添加一个手动触发器,但是说缺少的文档将表明某些存在。这是我到目前为止所发现的(在源代码中)

// Default hide triggers for each show trigger
var triggerMap = {
  'mouseenter': 'mouseleave',
  'click': 'click',
  'focus': 'blur'
};

...

/**
 * This allows you to extend the set of trigger mappings available. E.g.:
 *
 *   $tooltipProvider.setTriggers( 'openTrigger': 'closeTrigger' );
 */
this.setTriggers = function setTriggers ( triggers ) {
  angular.extend( triggerMap, triggers );
};

那么,你如何编写其中一个触发器?

5 个答案:

答案 0 :(得分:6)

如果您仍在搜索解决方案,那么知道工具提示仅在有文本值时显示可能会很方便,否则它们实际上并不显示。

我自己使用popover指令,这是一个可以编辑文本的plunker。清除该字段后,工具提示将不会显示。

http://plnkr.co/edit/Zdkyhc90qTZFzLEwtrVL?p=preview

<body ng-controller="MainCtrl">
  <br/><br/>
  <input type="text" size="100" ng-model="error"/><br/><br/>
  <p class="btn btn-default" 
     popover="{{error}}" 
     popover-placement="right" 
     popover-trigger="mouseenter">Hover my error!</p>
</body>

在控制器中,您只需设置错误初始值。确保包含'ui.bootstrap'作为应用程序的依赖项,否则它将无效。

var app = angular.module('plunker', ['ui.bootstrap']);

app.controller('MainCtrl', function($scope) {
  $scope.error = 'Something went wrong';
});

答案 1 :(得分:1)

AngularJS 1.5.7和Bootstrap 3.3.6支持输入,选择和textarea元素的uib-tooltip-html属性。与uib-tooltip属性不同,uib-tooltip-html属性支持表达式。你应该能够在其中表达你的条件。

例如,这是一个出生日期文本框,其中包含一个表达式,该表达式在有效时命名字段或解释验证错误:

<input id="dateOfBirth{{::vm.studentID}}"
			   name="dateOfBirth"
			   placeholder="Date of Birth"
			   uib-tooltip-html="myFormName.dateOfBirth.$valid ? 'Date of Birth' : myFormName.dateOfBirth.$error.required ? 'Date of Birth is required' : 'Date of Birth is not a valid date: mm/dd/yyyy'"
			   type="date"
			   class="form-control"
			   data-ng-model="vm.dateOfBirth"
			   data-ng-required="vm.editMode"
			   min="1920-01-01"
			   data-ng-max="vm.maxDateOfBirth"
			   tabindex="3" />

通过更多工作,您还可以解释最小和最大日期错误。

答案 2 :(得分:1)

<label>
    Open tooltips <span uib-tooltip="Hello!" tooltip-is-open="tooltipIsOpen" tooltip-placement="bottom">conditionally.</span>
</label>

检查API doc

的工具提示部分

答案 3 :(得分:0)

我们可以使用popover-enable属性将其显示为有条件的

答案 4 :(得分:0)

这可以通过 Angular Property binding 和 bootstrap 元素的 title 属性进行归档。在 Bootstrap 中,如果为标题值提供了一些文本,则工具提示只会显示在 DOM 中。您需要做的是将属性或方法绑定到工具提示。这里 getTooltip() 应该返回工具提示或空字符串。

<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="top" [title]="getTooltip()">