我有一個指令widget
,其中許多動態添加到頁面到三個垂直列之一。在指令中,我通過parent
屬性跟蹤widget
所在的列。我用呈現此是作爲HTML如下:AngularJS:防止從模型更改的視圖更新
<div id="columns">
<div id="column1">
<widget data-ng-repeat="widget in widgets | filter:{parent: 'column1'}" data-widget="widget" />
</div>
<div id="column2">
<widget data-ng-repeat="widget in widgets | filter:{parent: 'column2'}" data-widget="widget" />
</div>
<div id="column3">
<widget data-ng-repeat="widget in widgets | filter:{parent: 'column3'}" data-widget="widget" />
</div>
</div>
每個widget
是一個指定類型的,所以它們每個都具有不同的內容,並且彼此的獨立的。用戶可以在不同列之間拖放這些數據,Angular會自動更新底層數據中的parent
。我的問題是,通過Angular執行這個模型更新,它也會觸發重新加載指令,因此它有效地重新初始化該小部件,從而消除用戶在其中做出的任何更改。
有沒有什麼辦法讓我讓Angular更新底層模型數據,但是阻止它將這個改變重新渲染到視圖中?我意識到這是Angular應該做的事情,但在這種情況下它是不受歡迎的,並且足以讓我考慮刪除Angular。
我可以嘗試將JSFiddle放在一起,說明如果使用該問題,我將擁有該問題。
JSFiddle肯定會有用。我以前有過類似的拖放設置,並且每次都不重新初始化數據。 – 2013-02-26 14:29:22
試圖把現在放在一起 - 謝謝。只是出於興趣,你用什麼來拖放?我正在使用jQuery UI。 – jwest 2013-02-26 17:09:33
不幸的是,我沒有直接處理它,只是間接的,但我相信我們也使用jQuery-UI。 – 2013-02-27 15:24:44