【问题标题】:AngularJS: Don't run ng-repeat on DOM changeAngularJS:不要在 DOM 更改时运行 ng-repeat
【发布时间】:2017-06-07 17:08:11
【问题描述】:

我遇到了以下问题:

我有一个带有 AngularJS 1.6.1 的 SPA,并使用 ng-view 来实现一些视图。我有一个观点,我在 ng-repeat 中使用我自己的指令添加“UniteGallery”。所以 unitegallery 会被动态加载 15 次。到目前为止效果很好。

但是,我有一个移动菜单,我可以通过单击一个按钮来切换它。这也很有效。我只是用 ng-class 为菜单 div 设置了一个类,具体取决于菜单是打开还是隐藏。

这当然是在改变我的 dom。我的问题是,随着 dom 的改变,ng-repeat 会再次运行。这会导致闪烁和性能问题。

有没有办法在不反复运行 ng-repeat 的情况下更改 dom?

【问题讨论】:

  • 向我们提供您的代码
  • 请输入代码?谢谢。

标签: javascript jquery angularjs dom


【解决方案1】:

如果你不想重新加载 ng-repeat 绑定,(使用相应的 dom reload)你可以使用 One Time Bindings

随便用

::

在绑定之前,就像这样:

ng-repeat="照片在 ::gallery"

这将使 $scope.gallery 只绑定到视图一次

https://docs.angularjs.org/guide/expression

【讨论】:

    【解决方案2】:

    除了 Daniel Santiago 的回答:如果您想隐藏问题中提到的“闪烁”,您应该使用 ng-cloak

    更多关于ngCloak

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      相关资源
      最近更新 更多