我正在使用angularJS
和requirejs
viaangularAMD
来连接一个复杂的应用程序。
我的一个州有两个简单的观点,如下所示:
$stateProvider
.state("common", {
url: "/",
views: {
"view1": {
templateUrl: "view1.tpl.html"
},
"view2": {
templateUrl: "view2.tpl.html"
}
}
});
html
<div ui-view="view1"></div>
<div ui-view="view2"></div>
View1
有一个指令:
.directive('checkViewOneBoxWidth', function ($timeout) {
return {
restrict: 'A',
link: function (scope, elem, attrs) {
var linkFunctionAfterDomComplete = function () {
console.log(elem[0].scrollWidth);
}
$timeout(linkFunctionAfterDomComplete, 0);
}
}
})
并且view2
有一个样式表,可以对页面应用一些样式,包括更改容器的height
和。width
view1
我希望函数在 DOM 被样式表修改后linkFunctionAfterDomComplete
计算元素height
和width
属性,所以我将函数包装在.view2
linkFunctionAfterDomComplete
$timeout()
console.log
from here 是在checkViewOneBoxWidth
样式表中的样式view2
修改此元素的大小之前报告此元素的大小,尽管我们希望在应用样式之后$timeout
导致linkFunctionAfterDomComplete
函数计算此元素的大小view2
DOM 已完成。
在完全渲染并应用所有样式后,如何linkFunctionAfterDomComplete
计算反映元素真实状态的元素属性?