我有这个指令来计算div的高度。
// Directive to log a height. We have to add on some value to a final height, because css style will be undefined.
rootApp.directive('logHeightCategories', ['$timeout', function($timeout) {
return {
restrict: 'A',
link: function(scope, element) {
scope.prepMaxHeightCat = element.prop('offsetHeight');
scope.value = 0;
$timeout(function() {
scope.maxHeightCat = scope.value + scope.prepMaxHeightCat;
}, 0);
}
};
}]);
css规则max-height: {{maxHeightCat}}px
适用于该div用于动画目的。
然而,闪烁效应破坏了欲望的目标。所以我为{div}添加了ng-cloak
到display:none
。
我认为ng-cloak
被渲染为最后一个,因此我认为我的指令logHeightCategories
之前已执行。所以我总是得到0px
结果。
...即使我添加了$timeout
函数,希望我能克服执行时间,但我认为情况并非如此。
答案 0 :(得分:1)
你可以尝试
rootApp.directive('logHeightCategories', ['$timeout', '$compile',
function($timeout,$compile) {
return {
restrict: 'A',
link: function(scope, element, attrs) {
scope.prepMaxHeightCat = element.prop('offsetHeight');
scope.value = 0;
scope.maxHeightCat = scope.value + scope.prepMaxHeightCat;
scope.$watch(attrs.logHeightCategories, function(html) {
element.html(html);
$compile(element.contents())(scope);
});
}
};
}
]);