单击弹出框和按钮时切换按钮

时间:2017-01-31 19:38:08

标签: angularjs angular-ui-bootstrap

此处代码:https://plnkr.co/edit/ysD1JN0ELqu7ACgkkp79?p=preview

我有两个按钮。一个是“State1”,另一个是“State2”。

一开始,它位于“State2”按钮中。然后我点击“State2”按钮,它切换到“State1”按钮,也生成popover。

我想点击“State1”按钮并弹出, 然后它会从“State1”按钮变为“State2”按钮 。我使用popover-trigger =“outsideClick”,但它不起作用。请指教。谢谢

<div ng-click="Ctrl.Check = !Ctrl.Check" popover-trigger="outsideClick">
            <a ng-class="{'btn-danger': !Ctrl.Check, 'btn-default': Ctrl.Check }" confirm-link="Ctrl.deleteCurrent(Ctrl.A)" uib-popover="I appeared on focus! Click away and I'll vanish..." popover-trigger="outsideClick" popover-placement="right">
                {{ Ctrl.Check ? 'State1' : 'State2' }}
            </a>
</div>

2 个答案:

答案 0 :(得分:0)

你错过了popover-trigger中的'',你不需要div本身的第一个:

<div ng-click="Ctrl.Check = !Ctrl.Check">
        <a ng-class="{'btn-danger': !Ctrl.Check, 'btn-default': Ctrl.Check }" confirm-link="Ctrl.deleteCurrent(Ctrl.A)" uib-popover="I appeared on focus! Click away and I'll vanish..." popover-trigger="'outsideClick'" popover-placement="right">
            {{ Ctrl.Check ? 'State1' : 'State2' }}
        </a>

答案 1 :(得分:0)

这里是plunker https://plnkr.co/edit/KXWzDN882fWEByUNzks6?p=preview

我做了什么

      <a 
            ng-class="{'btn-danger': !isOpen, 'btn-default': isOpen }" 
            state-change-capture 
            confirm-link="Ctrl.deleteCurrent(Ctrl.A)" 
            uib-popover="I appeared on focus! Click away and I'll vanish..." 
            popover-trigger="'outsideClick'" 
            popover-is-open="isOpen" 
            ng-click="isOpen = !isOpen"
            popover-placement="right">
                {{ isOpen ? 'State1' : 'State2' }}
      </a>
控制器中的

$scope.isOpen = false;
$scope.$watch('isOpen', function (oldVal, newVal) {
    //just for reference in case you need to know the status of popover
  });

为uib-popover添加了一个名为popover-is-open="isOpen"的属性 它告诉弹出窗口是否可见,并根据设置状态1或2

此外,如果你需要观察它,那么就把手表添加到控制器中,以防你需要它。