Skip to content

Instantly share code, notes, and snippets.

@clouddueling
Created November 11, 2013 00:54
Show Gist options
  • Select an option

  • Save clouddueling/7406092 to your computer and use it in GitHub Desktop.

Select an option

Save clouddueling/7406092 to your computer and use it in GitHub Desktop.
popover directive incomplete
// NOTE Popover
.directive('popover', ['$document', '$http', '$compile', function($document, $http, $compile) {
return function(scope, element, attrs) {
var popoverId = Math.floor(Math.random() * 10000000000),
popoverTitle = attrs.popoverTitle,
popoverPlacement = attrs.popoverPlacement || "top"
$http.get(attrs.popover).success(function(data) {
createPopover(data);
});
console.log(scope);
function createPopover(html) {
html += "<span id='popover-" + popoverId + "'></span>";
scope.$watch(function(scope) {
return scope.$eval(attrs.popover
},
function(value) {
})
element.popover({
content: html,
html: true,
trigger: "manual",
title: popoverTitle,
placement: popoverPlacement,
container: 'body',
});
element.bind('click', function(e) {
e.stopPropagation();
element.popover('show');
var pop = $("#popover-" + popoverId);
console.log($compile(pop.closest('.popover-content').contents())(scope));
pop.closest(".popover").click(function(e) {
e.preventDefault();
e.stopPropagation();
});
// If you click the window excluding the popover close popover.
$document.on('click.popover.' + popoverId, ":not(.popover, .popover *)", function() {
$document.off('click.popover.' + popoverId);
pop.closest('.popover').remove();
});
});
}
};
}])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment