我有一个指令widget
,其中许多是动态添加到页面中的三个垂直列之一。widget
在该指令中,我通过parent
属性跟踪该列所在的列。我用来渲染它的 HTML 如下:
<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 来说明我遇到的问题,如果它有用的话。