Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 简单的单向绑定为ng重复?_Angularjs_Angularjs Ng Repeat - Fatal编程技术网

Angularjs 简单的单向绑定为ng重复?

Angularjs 简单的单向绑定为ng重复?,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,我读过一些文章说,如果有超过2000个项目,ng repeat将导致性能不佳,因为双向绑定太多,无法观看。我是angularjs新手,很难理解ng重复和双向绑定之间的关系: ng repeat(如输出json对象列表)是否一定会创建双向绑定 是否有一种简单的方法只使用单向绑定来执行ng重复?(最好不需要外部模块) 介绍了一些有趣的解决方案。最终结果是: 升级至AngularJS 1.1.5并与一起使用。AngularJS ng repeat提供了1.1.4版的Limito选项。我稍微修改了Inf

我读过一些文章说,如果有超过2000个项目,ng repeat将导致性能不佳,因为双向绑定太多,无法观看。我是angularjs新手,很难理解ng重复和双向绑定之间的关系:

  • ng repeat(如输出json对象列表)是否一定会创建双向绑定

  • 是否有一种简单的方法只使用单向绑定来执行ng重复?(最好不需要外部模块)

  • 介绍了一些有趣的解决方案。最终结果是:

    升级至AngularJS 1.1.5并与一起使用。AngularJS ng repeat提供了1.1.4版的Limito选项。我稍微修改了Infinite Scroll指令,使在高度不超过窗口100%的容器中滚动成为可能

    基本上,您可以限制最初渲染的对象数量,然后使用无限滚动指令根据需要渲染更多对象。由于您不需要外部模块,只需使用自己的脚本根据需要模拟无限滚动功能即可

    注意:这将解决性能问题,但不会删除双向绑定

  • ng模型所产生的结果是在数据(模型)上有一个观察者,如果它跨越200个观察者,则会降低页面性能

  • 有关单向绑定,请参阅此文档,但请确保正确使用它


  • 希望对你有帮助

    对于任何使用或升级到Angular 1.3的用户,现在可以使用“一次性绑定”。对于ng重复,它将如下所示:

    <div ng-repeat="item in ::items">{{item.name}}</div>
    
    {{item.name}
    
    注意
    ::items
    语法


    有关更多信息,请查看。

    与前面提到的user1843640类似,如果您使用Angular 1.3,则可以使用一次性绑定,但为了清楚起见,您需要在所有绑定上,而不仅仅是中继器上添加::。医生说要这样做:

    {{item.name}}

    但是,如果我算上观察者,这只删除了一个。要真正减少双向绑定的数量,请将::放在中继器中的绑定上,如下所示:

    <div ng-repeat="item in ::items">{{item.name}}</div>
    
    {{::item.name}

    下面是两个将显示观察者数量的劫掠者:



    谢谢你向MiaaGe发布这个功能来计数观察者

    如果你有这么多的数据,你应该考虑使用一种分页。我想你必须使用NG绑定(单向数据绑定)而不是NG模型(双向数据绑定)来编写自己的自定义NG重复指令。@Beteraba他只是举了个例子。他真正的意思是,巨大的应用程序可能在不同的小部件中有更多的数据。我已经试过了,正如你所说的,但是当我向下滚动时,它加载了更多的项目,我的页面被阻塞。在我的场景中,我在一个页面中有3个选项卡。因此,对于页面加载,它正在工作,因为它将加载第一个选项卡,并且当我在3个选项卡之间切换时,它不是触发的,因为它是单个绑定。你能为这个场景提供一些指导吗。双向绑定在选项卡之间切换时需要时间。