使用Angular JS将远程数据添加到Popover

时间:2014-04-24 18:55:04

标签: javascript jquery angularjs twitter-bootstrap

我想知道是否有办法将远程动态数据添加到Twitter BS Popover。我已经看到答案,他们用ajax做了,但我试图使用Angular ...下面的代码不适用于弹出窗口,但类似的代码适用于模态。我认为这与无法将函数放在content参数中有关。我在一个应该运行下面代码的表中使用ng-click(displayEvent($ unixdate))的div:

var app = angular.module('cal', []);


function CalCtrl($scope, $http, $templateCache) {
   $scope.displayEvent = function(date) {
   $scope.url = "/cal/data.php?date="+date;
   $scope.method = 'GET';
   $scope.data = '';
    $scope.date = date;

   //popover
   $('.callink').popover({trigger:'hover', content:function(){




    $http({method: $scope.method, url: $scope.url, cache: $templateCache}).

    success(function(data, status) {
    $scope.data = JSON.stringify(data);

    return $scope.data;
                                    });
  }});

   //end popover
 };
}

3 个答案:

答案 0 :(得分:3)

我承认我没有花太多精力去理解所描述的场景,但是为什么选择jQuery?我会检查AngularUI Bootstrappopover

答案 1 :(得分:0)

这是因为$http对象的成功函数被称为异步AFAIK。因此,$scope.data响应永远不会返回到弹出内容函数。您必须在popover函数内调用$http.success()函数:

$http({method: $scope.method, url: $scope.url, cache: $templateCache}).success(function(data, status) {
     var jsonData = JSON.stringify(data);

     $('.callink').popover({trigger:'hover', content:jsonData});
});

答案 2 :(得分:0)

我会像Kludge一样使用AngularUI Bootstrap。它有一些有用的工具。