私はangularJS
and requirejs
viaangularAMD
を使用して、複雑なアプリケーションを結び付けています。
私の状態の 1 つには、次のような 2 つの単純なビューがあります。
$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
が期待されるという事実にもかかわらず、DOM が完成しました。$timeout
linkFunctionAfterDomComplete
view2
linkFunctionAfterDomComplete
要素が完全にレンダリングされ、すべてのスタイリングが適用された後の要素の真の状態を反映するものを反映する要素プロパティを計算するにはどうすればよいですか?