2016-06-27 5 views
0

このバグについての記事は、angle-bootstrapを更新するか$ templateCacheにテンプレートを追加することで修正されていますが、これらの修正のどれも私のために働いていません。問題は、ポップオーバーがレンダリングされたときに初期位置が正しくない、つまり、ディレクティブが適用されている要素の代わりに0,0に配置されていることです。したがって、Popoverは0から正しい位置にジャンプします。表示されているポップオーバーは別のディレクティブの内側にあるので、おそらくそれが問題であるかどうかはわかりません。ang ui popover flicker wrong position

//ディレクティブ

(function(){ 
'use strict'; 

angular.module('myApp') 
.directive('campaignItem', function() { 
    return { 
    restrict: 'A', 
    scope: { 
     campaigns: '=', 
     userRole: '@' 
    }, 
    templateUrl: 'campaign.tpl.html', 
    link: function(scope, element, attr) { 
    } 
    }; 
}) 
.directive('campaignChangesPopover', function() { 
    return { 
    restrict: 'EA', 
    replace: true, 
    scope: { 
     ngModel: '=' 
    }, 
    template: '<a uib-popover-template="\'campaign-popover.html\'" popover-placement="right">Popover</a>', 
    link: function(scope, element, attr) {  
    } 
    }; 
}); 

}); 

// campaignItemテンプレート

... 
<td colspan="3"> 
    <strong>Recent Changes</strong> 
    <p><a campaign-changes-popover>view changes</a></p> 
</td> 
... 

// campaignChangesPopoverテンプレート

<strong>Change Log</strong><br /> 
<span>Josh Fox Approved Policy 11/24/2015</span><br /> 
<span>Brian Adamski Changed Policy. 11/23/2015</span><br /> 
<span>Josh Fox Requested Change: Modify Policy. Date 11/20/2015</span><br /> 
<span>Brian Adamski Submitted Campaign for Approval 11/16/2015</span><br /> 
<span>Brian Adamskit Created Campaign 11/15/2015</span> 

// $タイムアウトしてみました

template: '<a uib-popover-template="\'campaign-popover.html\'" popover-placement="right" popover-trigger="none" ng-click="showPopover()" popover-is-open="isOpen">Popover</a>', 
    link: function(scope, element, attr) { 
     scope.isOpen = false; 
     scope.showPopover = function() { 
     $timeout(function() { 
      scope.isOpen = !scope.isOpen; 
     }, 400); 
     }; 
    } 

答えて

0

通常、このような問題は、$ timeout(showPopover()、400)を使ってポップアップの前に要素がレンダリングされ、座標によって計算された位置が正しいことが確認されます。

+0

ありがとうございますが、それでも動作しません。 $ timeoutを使って上記の私の編集を見てください。 – neridaj

0

popover-animation = "false"