【发布时间】:2015-10-16 02:49:25
【问题描述】:
我正在监视一个 CSS 样式并更新基于该 CSS 样式值的范围内的变量。它第一次工作,但是当浏览器调整大小时,范围会更新,但 ng-style 不会使用新的范围参数更新。
JS:
.directive('monitorStyle', function() {
return {
link: function(scope, element, attrs) {
scope[attrs.updateVariable] = $(element).css(attrs.monitorStyle);
angular.element(window).on('resize', function() {
scope[attrs.updateVariable] = $(element).css(attrs.monitorStyle);
});
}
}
})
HTML:
<p class="text" monitor-style="font-size" update-variable="textHeight">Press "<img class="mini up" src="img/select-arrow.png" src="Up" ng-style="{'height': textHeight}">
我正在尝试在控制器之外执行此操作,因为这是人们推荐的。为什么更新范围时ng-style不更新?
【问题讨论】:
-
你试过用 $(window).resize 代替 angular 吗?如果您想通过角度来实现这一点,那么下面的链接将为您提供帮助。 stackoverflow.com/questions/23044338/window-resize-directive
-
这个答案可能对你有帮助stackoverflow.com/a/25111105/2353403
-
谢谢,Damnien 在下面回答。诀窍是添加 scope.$apply();在指令中的调整大小事件内部
标签: angularjs