Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 角度页面高度指令更新不正确_Html_Css_Angularjs - Fatal编程技术网

Html 角度页面高度指令更新不正确

Html 角度页面高度指令更新不正确,html,css,angularjs,Html,Css,Angularjs,如果div的高度小于浏览器的高度,我将发出指令,将div的高度设置为浏览器的高度 我创建了以下指令: (function() { var directive = function ($log, $window) { function evaluate(element) { var height = element.prop("offsetHeight"); var pageHeight = $window.innerHeight; if

如果div的高度小于浏览器的高度,我将发出指令,将div的高度设置为浏览器的高度

我创建了以下指令:

(function() {

var directive = function ($log, $window) {

    function evaluate(element) {
        var height = element.prop("offsetHeight");
        var pageHeight = $window.innerHeight;
        if (height < pageHeight)
        {
            $log.info("element height is less than page height, changing element height.");
            element.css("height", pageHeight);
        }
    }

    return {
        restrict: "A",
        link: function (scope, element, attrs)
        {
            //call it one time on load to handle first display
            evaluate(element);
            $window.addEventListener("resize",
                function() {
                    $log.info("Resize directive called: evaluating window size.");
                    //window size changed, check if we need to adjust the height
                    evaluate(element);
                });

            //add a watch to trigger when the inside of the div changes
            scope.$watch(function() { return element[0].childNodes.length }, function(values) {
                evaluate(element);
            });
        }

    }
};

angular.module('bootstrapApp')
    .directive('fullSize', ["$log", "$window", directive]);
(函数(){
var指令=函数($log,$window){
功能评估(元素){
var高度=元素道具(“偏离视线”);
var pageHeight=$window.innerHeight;
如果(高度<页面高度)
{
$log.info(“元素高度小于页面高度,正在更改元素高度”);
css(“高度”,pageHeight);
}
}
返回{
限制:“A”,
链接:函数(范围、元素、属性)
{
//加载时调用一次以处理第一次显示
评价(要素);
$window.addEventListener(“调整大小”,
函数(){
$log.info(“称为:计算窗口大小的Resize指令”);
//窗口大小已更改,请检查是否需要调整高度
评价(要素);
});
//添加一个手表以在div内部发生变化时触发
作用域.$watch(函数(){return element[0].childNodes.length},函数(值){
评价(要素);
});
}
}
};
angular.module('bootstrapApp')
.directive('fullSize',[“$log”,“$window”,directive]);
})()

其使用方式如下:

<body>
<fullsize-background-image-1></fullsize-background-image-1>
<navbar-1></navbar-1>
<div class="container-fluid">
    <div class="row">
        <left-sidebar-1></left-sidebar-1>
        <right-sidebar-1></right-sidebar-1>
        <div class="col-xs-12 main" id="main" full-size>
            <div ng-view="" autoscroll="true"></div>
            <footer-1></footer-1>
        </div>
    </div>
</div>
....
</body>

....
我的问题是,在页面加载时,事情运行得很好(没有
scope.$watch
语句)。但是,当路由到另一个页面时,该内容替换了div#main元素中的内容。有时,新页面的高度大于上一页的高度,导致显示我的隐藏

我需要做的是,在初始页面加载时,让我的全尺寸指令评估main的高度应该是多少。然后,当页面更改时,让它重新评估它,如果内容更大,则删除该属性

谢谢