【发布时间】:2015-10-16 13:13:45
【问题描述】:
在过去的 3 天里,我一直在网上搜索,试图弄清楚当 angular 注意到 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();
});
我对它的工作原理有一个模糊的了解,但我不明白为什么它在这里不起作用。
【问题讨论】:
标签: angularjs resize bind directive watch