Bootstrap popover在AngularJs ng-repeat中不起作用

时间:2014-01-02 23:49:04

标签: angularjs twitter-bootstrap angularjs-ng-repeat

我有一个国家/地区列表,我使用ng-repeat填充那些,一切正常。此外,我试图通过使用引导程序弹出窗口显示每个国家/地区内的其他一些细节,它似乎没有用,所以有人可以帮助我吗?

Html代码:

<body ng-app="app" ng-controller="my_controller">    
<div class="span3 projectCard" ng-repeat="country in all_countries">
    <div class="projectCardHeight">
        <button class="btn close cardClose" ng-click="deleteCountry(country.id)">×</button>
        <div class="cardHeader">Country</div>
        <div class="cardBody">{{country.id}}</div>
        <div class="cardBody">{{country.title}}</div>
        <div class="cardBody"><a href="#" id="pop{{country.id}}" class="btn btn-primary" rel="popover" data-content="This is the <b>body</b> of Popover" data-original-title="Creativity Tuts">pop</a></div>
    </div>
</div>
 </body>

Javascript代码:

var app = angular.module("app", []);
app.controller('my_controller', function($scope) {  
    $scope.all_countries = [
        {"id":28,"title":"Sweden"},
        {"id":56,"title":"USA"},
        {"id":89,"title":"England"}];
});

function deleteCountry(id)
{
    alert("Do something");
}

$(document).ready(function () {
    $("a[rel=popover]")
        .popover({ placement: 'bottom', html: 'true' })
        .click(function (e) {
            e.preventDefault();
        });
});

请参阅此JsFiddle

1 个答案:

答案 0 :(得分:14)

演示:http://jsfiddle.net/5ww8e/1/

创建一个名为bs-popover的新指令,并将其与ng-repeat一起应用。在popover指令内触发bs-popover方法。

你的js文件加载顺序也是错的,你应该在bootstrap之前加载jquery。