此处代码: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>
答案 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
此外,如果你需要观察它,那么就把手表添加到控制器中,以防你需要它。