我有一个指令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