【发布时间】:2017-10-05 15:39:35
【问题描述】:
我有一个md-card,上面有这个代码:
<md-card ng-style="{ width: pageWidth > 900 ? '40vw' : '80vw' }">...</md-card>
pageWidth 是绑定到$(window).width() 的$scope 变量。这是代码:
$scope.pageWidth = $(window).width();
$(window).resize(() => {
$scope.pageWidth = $(window).width();
console.log('page width: ' + $scope.pageWidth);
})
$(document).ready(() => {
$(window).resize(() => {
$scope.pageWidth = $(window).width();
console.log('page width: ' + $scope.pageWidth);
})
})
样式在页面加载时正确应用,但在我手动调整页面大小时不正确。正如您在第二个代码块中看到的那样,我在处理程序中添加了一个console.log 语句,所以我知道$scope.pageWidth 会随着我改变宽度的每个像素而更新。但是,md 卡的宽度永远不会从一个更改到另一个。这是怎么回事?
在你将其标记为重复之前,人们之前已经问过这个问题,但他们的答案并不适用于我的情况。
【问题讨论】:
-
尝试将调整大小包含在 scope.apply() 中
标签: angularjs ng-style angularjs-material