如何在不重新绘制绑定视图的情况下重新加载angularjs范围数据

How to reload angularjs scope data without rerendering bound view

本文关键字:新加载 情况下 加载 angularjs 数据 范围 视图 新绘制 绘制 绑定      更新时间:2023-09-26

我遇到了一个小问题。我在angularjs应用程序中有一个引导选项卡集。选项卡部分由ng重复生成,并包含绑定到作用域的数据。

基本上,在控制器内:

$scope.data = { ... }  // Loaded from a factory

现在,当我重新加载这些数据时(通过用新数据替换旧数据),将通过ng repeat重建选项卡集,视图将自动切换到第一个选项卡。

有没有一种方法可以在不重建视图中所有内容的情况下替换范围中的数据?

您没有明确说明具体的数据以及其中哪些数据以何种方式使用。因此,这将是一个普遍的答案:

尝试只更新实际更改的位。例如,不要替换整个对象或数组,而只替换实际更改的更新属性或索引。这样,只有GUI的相关部分才会更新。

如果必须替换对象,如果在表达式中使用"track by"(只有当元素具有可用于此操作的唯一id时,这才可能),则仍然可以帮助angular保持模型中对象与ng重复的dom元素之间的连接。

另一个选项:对首次加载数据时只应更改一次的部分使用一次性绑定:请参阅中的"一次性绑定"一节https://docs.angularjs.org/guide/expression