过去3天我一直在搜索互联网,试图找出当角度注意到div宽度变化时如何运行指令.
我一直看到我应该如何实现这个目标的相同例子,但是,它们对我不起作用,我不知道为什么.
我一直看到我应该如何实现这个目标的相同例子,但是,它们对我不起作用,我不知道为什么.
我回到了原点.我想要做的就是:当div的宽度改变时,更新div的css属性(有一个指令作为属性).
我需要知道如何获得角度以检查属性何时发生变化.
这是我到目前为止:
.directive('stayPut',function () { var linker = function (scope,element,attrs) { scope.getElemWidth = function () { return element.width(); }; scope.$watch(scope.getElemWidth,function (newWidth,oldWidth) { var deltaWidth = newWidth - oldWidth; console.log(deltaWidth); element.css('top',(parseInt(element.css('top')) + deltaWidth) + 'px'); },true); element.bind('resize',function () { scope.$apply(); }); }; return { link: linker,restrict: 'A' } });
我知道这里的问题是:
element.bind('resize',function () { scope.$apply(); });
我对它是如何工作有一个模糊的理解,但我不明白为什么它在这里不起作用.
解决方法
试试这个:
element.on('resize',function () { scope.$apply(); });