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

时间:2014-10-01 09:07:01

标签: javascript angularjs twitter-bootstrap angularjs-scope angularjs-ng-repeat

我遇到了一个小问题。我在angularjs应用程序中有一个bootstrap tabset。选项卡部分由ng-repeat生成,并包含绑定到范围的数据。

基本上,在控制器内:

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

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

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

1 个答案:

答案 0 :(得分:2)

您并未明确具体数据,以及以何种方式使用这些数据。 所以这必须是一个普遍的答案:

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

如果你必须更换物体,你仍然可以帮助角度保持模型中物体和dom元素之间的连接,如果你使用"跟踪"在表达式中(只有当元素具有一些可以用于它的唯一ID时才可能)。

另一种选择:对首次加载数据时应该只改变一次的部分使用一次性绑定:参见"一次性绑定"在https://docs.angularjs.org/guide/expression