我有一个角度应用,它使用数组在视图中使用ng-class填充css规则集。更新阵列时,新规则集将应用于DOM,但旧规则集不会被删除。
单击某个项目会更新我的控制器中的数组,该数组仅在控制器启动时更改一次并添加到要使用的视图范围
// generate an array of values, 1 for each item
this.scope.valueList = [];
for(var i in this.scope.items) {
this.scope.valueList.push(this.generateValue(this.scope.items[i]));
}
我的HTML
<div ng-repeat="item in valueList">
<div class="action" ng-class="item.type" focusable>
<div class="image svg" ng-class="item.icon" ></div>
</div>
我已经尝试过使用带有bo-class插件的bindonce for angular,所以这个奇怪的更新不会发生,但它仍然存在
整个javascript流程做得很好。在完成此过程之前和之后查看数组显示其工作正常。我已经使用了Chrome调试器,并逐步完成了每个过程的监控。
唯一的问题是我的ng-class没有删除旧的值,它只是增加了新值。刷新应用程序可修复重复问题,仅显示来自controllerArray的当前值
是否存在一些缓存机制或bug,使得ng-class在其观察的属性值发生变化时不会删除旧值?