AngularJS:如何比较newValue和oldValue

时间:2015-08-11 17:51:09

标签: javascript css angularjs

我正在使用我为Angular找到的窗口调整大小指令。除了多重触发问题外,它的效果很好。我正在使用地图,因此根据地图div高度我无法承受多次重绘。即使值没有改变,该示例也会触发3次。我知道我需要在手表中添加一个if语句newValue!= oldValue但是我得到了太多的摘要周期错误。如何更改这与if语句一起使用? fiddle

app.directive('resize', function ($window) {
    return function (scope, element, attr) {

        var w = angular.element($window);
        scope.$watch(function () {
            return {
                'h': window.innerHeight, 
                'w': window.innerWidth
            };
        }, function (newValue, oldValue) {
            console.log(newValue, oldValue);
            scope.windowHeight = newValue.h;
            scope.windowWidth = newValue.w;

            scope.resizeWithOffset = function (offsetH) {
                scope.$eval(attr.notifier);
                return { 
                    'height': (newValue.h - offsetH) + 'px'                    
                };
            };

        }, true);

        w.bind('resize', function () {
            scope.$apply();
        });
    }
});

UPDATE 我怎么能实现这个? link

0 个答案:

没有答案