获取Angular UI日历以使用UI-Bootstrap工具提示

时间:2014-01-14 06:46:09

标签: angularjs twitter-bootstrap tooltip fullcalendar angular-ui

我正在尝试在角度UI calendarEvent的鼠标悬停上显示工具提示。我设法按照以下主题中的说明执行此操作, Tooltip for fullcalendar in year view

    $scope.eventMouseover = function (calEvent, jsEvent) {
        var tooltip = '<div class="tooltipevent">' + calEvent.description + '</div>';
        $("body").append(tooltip);
        $(this).mouseover(function (e) {
            $(this).css('z-index', 10000);
            $('.tooltipevent').fadeIn('500');
            $('.tooltipevent').fadeTo('10', 1.9);
        }).mousemove(function (e) {
            $('.tooltipevent').css('top', e.pageY + 10);
            $('.tooltipevent').css('left', e.pageX + 20);
        });
    }

    $scope.eventMouseout = function (calEvent, jsEvent) {
        $(this).css('z-index', 8);
        $('.tooltipevent').remove();
    },

显然,这不是最好的方法。使用最新的UI-Bootstrap,我们有一个更好看的工具提示。有没有人成功地将这些工具提示与Angular-UI日历​​集成在一起?

更新1 :正如http://arshaw.com/fullcalendar/docs/event_rendering/eventRender/中所述,我尝试覆盖eventRender并简单地将工具提示属性添加到calendarEvent div。还是行不通。我可以看到,即使mouseover和mouseout事件也没有添加到那些包含'tooltip'属性的calendarEvent div中。

1 个答案:

答案 0 :(得分:6)

如果您将此功能添加到日历配置中,它将起作用。

$scope.eventRender = function( event, element, view ) { 
  $timeout(function(){
    $(element).attr('tooltip', event.title);
    $compile(element)($scope);
  });
};

任何东西都可以放在工具提示属性中。偶{{bindings}}

$ timeout是因为$ scope。$ apply必须被调用。通过使用$ timeout并且没有延迟,可以确保在不抛出“正在进行摘要”错误的情况下调用摘要。