首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用anguarJS返回0内指令

使用anguarJS返回0内指令
EN

Stack Overflow用户
提问于 2015-08-05 18:10:26
回答 2查看 164关注 0票数 0

我正试图获得高度自动的div的高度。当我从铬内部用元素检验器查看元素时,它会给出一个高度。

问题是,对于console.log,它返回0。

我试过innerHeight和outerHeight都不起作用。

这是我的代码:

代码语言:javascript
复制
var vAlign = angular.module("vAlign", [])
.directive('vAlign', function() {
    return {
        restrict : "AC",
        link: function(scope, e){

            var elementHeight = e.height();
            var parentHeight = e.parent().height();
            var finalHeight = parentHeight - elementHeight /2;

            e.css('marginTop', finalHeight);

            console.log(elementHeight);
        }
    };
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-05 18:29:03

您可以将其放入一个$timeout中,然后它将运行后置呈现:

代码语言:javascript
复制
var vAlign = angular.module("vAlign", [])
  .directive('vAlign', function($timeout) {
    return {
        restrict : "AC",
        link: function(scope, e){
            $timeout(function() {
              var elementHeight = e.height();
              var parentHeight = e.parent().height();
              var finalHeight = parentHeight - elementHeight /2;

              e.css('marginTop', finalHeight);

              console.log(elementHeight);
            });
        }
    };
});
票数 3
EN

Stack Overflow用户

发布于 2015-08-05 18:42:33

在许多情况下,在遇到竞争条件时,您可以利用angular.Element的$timeout调用,而不是尝试一个ready()解决方案。

代码语言:javascript
复制
#coffeescript
.directive 'vAlign', ->
   dir = 
      link: ($scope, elem, attrs)->
         elem.ready( /*insert function here*/ )
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31839825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档