Angular ng-show回调

时间:2015-01-14 09:24:42

标签: javascript angularjs

我试图获得当鼠标悬停在按钮上时会出现的元素高度。

示例代码:

<div ng-mouseenter="mouseoverPopUp()" ng-mouseleave="showpop=false">menu</div>
<div class="popover" ng-show="showpop">{{content}}</div>

$scope.mouseoverPopUp = function($event){
    $scope.showpop = true;
    var height = angular.element(".popover").innerHeight();
};

问题有时是元素出现之前的高度。无论如何我只能在ng-show显示元素的情况下运行代码吗?在看起来调整元素的位置后,我需要尽快获得高度。

1 个答案:

答案 0 :(得分:0)

您是否尝试过在$ timeout调用中使用代码,以便在角度完成工作后延迟执行JS?

$scope.mouseover = function($event){
    $timeout(function() {
        var height = angular.element(".popover").innerHeight();
    });
};

你是如何展示你的popover的?有css过渡?如果是这样,您需要相应地延迟JS代码检索高度。或者您可以使用angular-animate将事件与更多逻辑绑定

ps:为了帮助更多,jsfiddle会很棒