繁体   English   中英

角度-ui路由器-指令-获取指令的偏移量/位置

[英]angular - ui-router - directive - get offset/position of directive

我在许多使用angular和ui-router的项目中遇到了这个问题。

我有一条指令,我只想获取其大小/位置或其包含元素的大小/位置。 在以ui-router视图呈现的指令中,我连接了一个控制器,但是当我尝试获取大小时,它始终为零。

element.position() -> Object {top: 0, left: 0}
element.offset() -> Object {top: 0, left: 0}

在我的指令中,我有这个:

templateUrl: 'some-html-file',
link: function (scope, elem, attrs, someController) {
    someController.init(elem);
}

someController

this.init = function (element) {
     $scope.element = element;
     console.log($scope.element.position());
     console.log($scope.element.offset());
}

我不确定如何获取指令的位置和大小。 有什么想法吗? 这是否与ui路由器相关,或者这与使用指令的角度相关? 我猜这是一个计时问题-尝试在dom完成角度之前获取dom上的信息吗? 任何帮助表示赞赏!

这种与样式有关的例程需要推迟。 link运行时没有发生某些事情(首先,子link 其父link 之前 )。 通常你必须做

link: function (scope, elem, attrs, someController) {
    $timeout(function () {
        someController.init(elem);
    });
}

同样,其他指令会将某些内容推迟到下一个摘要中,并且有时您需要具有非零延迟的$timeout才能使其正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM