我遇到了一个小问题。我在angularjs应用程序中有一个bootstrap tabset。选项卡部分由ng-repeat生成,并包含绑定到范围的数据。
基本上,在控制器内:
$scope.data = { ... } // Loaded from a factory
现在,当我重新加载这些数据时(通过用新数据替换旧数据),标签集将由ng-repeat重建,视图将自动切换到第一个标签。
有没有办法在不重建视图中的所有内容的情况下替换范围内的数据?
答案 0 :(得分:2)
您并未明确具体数据,以及以何种方式使用这些数据。 所以这必须是一个普遍的答案:
尝试仅更新实际更改的位。 例如,不要替换整个对象或数组,而只替换实际更改的更新属性或索引。这样只会更新GUI的相关部分。
如果你必须更换物体,你仍然可以帮助角度保持模型中物体和dom元素之间的连接,如果你使用"跟踪"在表达式中(只有当元素具有一些可以用于它的唯一ID时才可能)。
另一种选择:对首次加载数据时应该只改变一次的部分使用一次性绑定:参见"一次性绑定"在https://docs.angularjs.org/guide/expression