我有一个小问题。我在angularjs应用程序中有一个引导选项卡集。这些选项卡是部分从ng-repeat生成的,并且包含绑定到范围的数据。

基本上,在控制器内:

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


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

有没有一种方法可以替换范围内的数据而无需重新构建视图中的所有内容?

最佳答案

您不确定具体数据以及以何种方式使用了哪些数据。
因此,这将是一个一般性的答案:

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

如果必须替换对象,则如果在表达式中使用“ track by”(仅当元素具有您所需要的唯一ID时才可行),您仍然可以帮助保持模型中对象与dom元素之间dom-repeat的角度连接。可以用于此)。

另一种选择:对第一次加载数据时仅应更改一次的零件使用一次绑定:请参见https://docs.angularjs.org/guide/expression中的“一次性绑定”部分

07-24 18:28
查看更多