在我的项目中,bootstrap popover用于显示带有ng-click事件的跨度(使用指令编译popover内容,然后将popover绑定到element)。我有bootstrap 3.1.1,它工作正常。每次打开弹出窗口时,都会触发ng-click事件。现在我已经转移到bootstrap 3.2.0并且我的项目中的popovers工作不正常。它只会在我们第一次显示然后隐藏弹出窗口(通过单击页面)之后工作,之后,当我再次打开弹出窗口时,它会正确显示内容但不会触发事件。似乎事件从元素中删除了。我尝试过onclick事件而不是ng-click,它在两个版本中都能正常工作。
<a ng-repeat="b in list"
role="button" class="btn">
<input ng-if="someCondition"
sample-popover type="hidden"
popover-content="{{ b.content }}" />
</a>
我有这个HTML和Popover内容只是一个简单的跨度与ng-click。
.directive('samplePopover', function ($compile) {
return {
restrict: "A",
link: function (scope, element, attrs) {
var options = {
content: $compile(attrs.popoverContent)(scope),
placement: "bottom",
html: true,
trigger: 'click',
};
$(element).closest('a').popover(options);
scope.test= function () {
//this is called with ng-click
};
}
}});