2017-05-25 49 views
0

如何在每次調整窗口大小時從angular指令更新元素寬度?調整大小後更新ng樣式的寬度

現在它只綁定一次。

DIRECTIVE

function calculateGameWidth() {  
    scope.responsiveGameWidth = Math.floor((window.innerWidth - 22)/Math.floor((window.innerWidth - 22)/232)) - 6; 
    return scope.responsiveGameWidth; 
} 

calculateGameWidth(); 

//On resize 
window.onresize = function() { 
    calculateGameWidth(); 
} 

HTML

<li ng-style="{width: responsiveGameWidth+'px'}"></li> 

預先感謝。

+0

https://stackoverflow.com/questions/30561615/css-update-on-resize-with -angularjs重複? – sweaver2112

+0

已經不是! :) –

回答

1

您正在角度週期之外進行範圍更新。

您可以

function calculateGameWidth() {  
    scope.responsiveGameWidth = Math.floor((window.innerWidth - 22)/Math.floor((window.innerWidth - 22)/232)) - 6; 
    scope.$apply(); 
} 

解決此問題並使用您的變量,而不是功能

<li ng-style="{width: responsiveGameWidth+'px'}"></li> 
+0

錯誤在控制檯 - > $ digest已在進行中 –

+0

請參閱編輯 - 您正在調用該功能,但不需要在html –

+0

酷,謝謝先生:) –

相關問題