2014-05-09 72 views
0

有一些HTML元素,其位置和大小永久存儲在後端,並在頁面加載時獲取。這些HTML元素的位置和大小也是用戶可編輯的(可拖動和可調整大小),只要發生這種更新,這些屬性需要保存在後端,以便它們在會話中保持不變。Angular JS CSS雙向更新

還有另一層次的複雜性,在一種稱爲「預覽」模式的模式下,用戶編輯選項被關閉(即:draggables和resizable被禁用),並且元素變得響應。使用Angular指令來保證響應能力。所以位置和大小是動態計算和定位的。一旦預覽模式關閉,屬性將恢復到預覽模式之前的狀態。

我目前在預覽模式下使用ng-style,而在非預覽模式下,我使用jquery的.css()方法來設置樣式。

但我認爲這不是最乾淨的方式,我如何實現CSS的雙向綁定,以便在一種狀態下從模型填充樣式,並在另一種狀態下模型得到更新與從DOM計算出的CSS。

tl; dr: CSS可以從模型中填充或保存到模型中。我需要在同一個HTML元素上使用'get css'和'set css'方法,其中取決於條件,只有get或set在任何給定時間處於活動狀態。

回答

0

也許你可以設置一個div容器,並設置了jQuery做了一個類變化

<scrpit> 
    if($whateveryouwant) { 
    $(".mode").addClass("preview-mode"); 
    } 

    else { 
    $(".mode").addClass("non-preview-mode"); 
    } 

    </script> 

你的HTML:

<div class="mode"> 
    ... 
    </div> 
+0

這不是問題,這是 - 「如何實現CSS的雙向綁定,使得在一種狀態下風格從模型,而在其他狀態下,模型將使用DOM中計算的CSS進行更新。「 –

+0

也許這是你正在尋找:http://stackoverflow.com/questions/22416124/a-solution-for-two-binding-between-angular-and-a-style-sheet –

+0

這更多的指令綁定模型使用已加載到DOM中的CSS規則。 我想這樣做一個div的'style'屬性。 –