UI Bootstrap - 如何在关闭前停止显示已更改文本的工具提示

时间:2016-02-07 20:30:16

标签: angularjs angular-ui-bootstrap

我有一个工作提示工作在glyphicon上。当我单击glyphicon时,我想隐藏工具提示,然后更改工具提示的文本。这反映了已点击的glyphicon的状态变化。

然而,当我隐藏工具提示,然后更改工具提示的文本,而不是按此顺序执行时,您可以在工具提示消失之前看到新文本。

这是html:

<span class="glyphicon glyphicon-eye-open watch-eye"
    ng-click="eyeClicked()" uib-tooltip="{{watchTooltip}}"
    tooltip-placement="auto top" tooltip-is-open="eyeTooltipIsOpen">
</span>

这是javascript:

$scope.watchingCategory = false;
$scope.watchTooltip = 'Watch';

$scope.eyeClicked = function() {

    $scope.eyeTooltipIsOpen = !$scope.eyeTooltipIsOpen;
    $scope.watchingCategory = !$scope.watchingCategory;

    if($scope.watchingCategory === true) {
        $scope.watchTooltip = 'Dont watch';
    }
    else if($scope.watchingCategory === false) {
        $scope.watchTooltip = 'Watch';
    }
};

我创建了一个plnkr来准确显示它是如何工作的:http://plnkr.co/edit/myQlkkiSNO14td21Dv0M

任何想法如何阻止这种行为?所有帮助表示赞赏...

1 个答案:

答案 0 :(得分:2)

这可能是uib指令中的一个问题。

超时解决了问题:

 $timeout(function(){
        $scope.watchTooltip = $scope.watchingCategory ?  'Dont watch' : 'Watch';
    }, 200);

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