У меня есть простой загрузочный popover, который открывается, когда я нажимаю кнопку. Я хочу показать список имен в корпусе popover, используя какой-то цикл. У меня есть список имен в моем контроллере angularjs. Я использую ng-repeat в popover для создания списка. ng-repeat работает хорошо, если я использую его вне popover, но он, похоже, не работает корректно в корпусе popover.ng-repeat не работает должным образом в bootstrap popover
Кажется, что он ведет себя так, как будто у меня есть 2-уровневый вложенный ng-repeat в моем коде, хотя я не имею вложенного ng-repeat в любом месте! Кроме того, popover не кажется «pop» из правильного местоположения (он должен выскочить из кнопки). Я делаю что-то неправильно? Заранее спасибо! Вот fiddle
Вот мой код, показывающий пирог:
$scope.showPopover = function() {
jQuery(function($) {
$('#pop').popover({
html: true,
container: 'body',
title: '<b style="margin-top:5px">Some Title</b> '+
'<button type="button" id="popoverCloseButton" class="close">×</button>',
content: function() {
return $compile($('#popover_content').html())($scope);
},
placement: 'auto right'
}).popover('show');
document.getElementById("popoverCloseButton").addEventListener("click", function(){
$scope.destroyPopover();
});
});
};
Спасибо @sourdoughdetzel за ответ. Ng-repeat определенно работает, если я напишу шаблон в виде строки в компиляции $ ... (...). Но на самом деле это не лучший способ сделать это, как вы уже упоминали. Надеюсь, кто-то может объяснить нам, ПОЧЕМУ это происходит. –
Можно утверждать, что лучше хранить строку html в вашем контроллере, а не просто скрывать ее в DOM. – sourdoughdetzel