Следующая директива вызывает бесконечный цикл дайджеста, и я не уверен, почему. любые идеи о том, как переработать код?Директива, вызывающая бесконечный цикл дайджеста
спасибо!
.directive('fitHeight', ['$window', '$timeout', '$location', function ($window, $timeout, $location) {
return {
restrict: 'A',
scope: true,
link: function (scope, element, attr) {
scope.docHeight = $(document).height();
var setHeight = function (newVal) {
var diff = $('header').height();
if ($('body').hasClass('layout-horizontal')) diff += 112;
if ((newVal-diff)>element.outerHeight()) {
element.css('min-height', (newVal-diff)+'px');
} else {
element.css('min-height', $(window).height()-diff);
}
};
scope.$watch('docHeight', function (newVal, oldVal) {
setHeight(newVal);
});
$(window).on('resize', function() {
setHeight($(document).height());
});
var resetHeight = function() {
scope.docHeight = $(document).height();
$timeout(resetHeight, 1000);
}
$timeout(resetHeight , 1000);
}
};
спасибо за код. однако при первой загрузке страницы повторного калибровки не происходит. – Marco
@Marco Мне жаль, что я забыл сделать первый звонок, я исправил пример и добавил живой для вас тест. –
спасибо, ты спас меня от массивной головной боли! :) – Marco