我正在监视CSS样式并更新基于该CSS样式值的范围内的变量。它第一次工作,但是当浏览器调整大小时,作用域得到更新,但ng样式不会使用新的作用域参数更新。更新范围时,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样式不会更新?
您是否尝试过使用$(窗口).resize而不是角?如果你想通过角度实现这一点,那么下面的链接将帮助你。 http://stackoverflow.com/questions/23044338/window-resize-directive –
也许这个答案可能会帮助你http://stackoverflow.com/a/25111105/2353403 –
谢谢,Damnien回答如下。诀窍是添加范围。$ apply();在指令 – user2476265