这次给大家带来如何确认ng-repeat渲染完成,确认ng-repeat渲染完成的注意事项有哪些,下面就是实战案例,一起来看一下。
某个项目,我的网页中有一个列表<ul>
元素,样式如下:
实际上它是通过Angular
的ng-repeat
形成的,html
中的代码是:
<li ng-repeat="for list in lists()" id="{{ list.id }}">{{ list.name }}</li>
图中下方的新建清单button
,点击之后就往lists
数组中push
了一个新的list
对象,此时页面会自动渲染,也对应增加一个<li>
,如下:
注意MyList1
一直是active
状态的(class="active"
),我的需求是新增list
后,把新增的list
设置为active
,即在新增后就变成下面这种样式:
刚开始我尝试在button
对应的函数中,往lists
数组中push
了新的list
对象后,使用<a href="http://www.php.cn/code/658.html" target="_blank">document</a>.getElementById
获取到新增的<li>
对象,然后为其添加一个class="active"
,结果发现获取到的DOM
对象为null
,经过搜索发现原因是:往lists
数组push
对象后,数组发生改变,所有的<li>
都会重新渲染,在push
完成之后马上去找新增的DOM
对象,DOM
还没渲染好,因此是获取不到的。解法是:使用<a href="http://www.php.cn/angularjs/angularjs-examples.html" target="_blank">AngularJS</a>
的指令去监听ng-repeat
是否渲染完成,在渲染完成后,再去取新增的<li>
对象,这个网上有很多相关的内容了,代码如下:
myapp.directive('repeatFinish', function ($timeout) { return { restrict: "C", link: function (scope, element, attr) { if(scope.$last === true){ $timeout(function () { scope.change_list(element[0]); }, 10); } } } });
上述代码建立了一个名为repeatFinish
的指令,restrict: "C"
表示指令放在DOM
的class
中(驼峰形式,即class="repeat-finish"
),scope.$last === true
表示已经渲染到了最后一个对象,此时执行change_list
函数(定义在控制器中,功能是把当前active
的对象取消active
,然后设置传入的DOM
对象为active
),element[0]
可以直接取到当前渲染的DOM
元素。注意我使用了$timeout
,10ms
后执行change_list
,我发现直接使用change_list
还是会找不到DOM
,原因不明,期待大神解答。
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
以上是如何确认ng-repeat渲染完成的详细内容。更多信息请关注PHP中文网其他相关文章!

1、首先在酷家乐中打开要渲染的设计方案。2、然后在渲染菜单下打开俯视图渲染。3、接着在俯视图渲染界面中点击参数设置中的正交。4、最后调整好模型角度即可点击立即渲染,渲染正交俯视图。

vue页面渲染是异步的。vue采用的是异步渲染,这样可以提升性能;如果不采用异步更新,在每次更新数据都会对当前组件进行重新渲染,为了性能考虑,Vue会在本轮数据更新后,再去异步更新视图。

Vue报错:无法正确使用v-html渲染动态HTML代码,怎样解决?引言:在Vue开发中,我们常常需要动态渲染HTML代码,以展示富文本内容或动态生成的用户输入。Vue提供了v-html指令来实现这个功能。然而,有时候我们可能会遇到无法正确使用v-html渲染动态HTML代码的问题。本文将探讨这个问题的原因,并提供解决方案。问题描述:在Vue中,当我们使用v

在Vue3中,v-for被视为渲染列表数据的最佳方式。v-for是Vue中的一个指令,它允许开发者遍历一个数组或对象,并为每个项生成一段HTML代码。v-for指令是开发者们可以使用的最强大的模板指令之一。在Vue3中,v-for指令得到了进一步的优化,使用更加简单,更加灵活。Vue3中的v-for指令最大的变化是元素的绑定。在Vue2中,使用v-for指令

Vue报错:无法正确使用v-html渲染HTML代码,怎样解决?Vue是一款流行的JavaScript框架,可以帮助我们构建交互式的用户界面。在Vue中,我们可以使用v-html指令将HTML代码渲染到模板中。然而,有时我们可能会遇到一个问题:无法正确使用v-html渲染HTML代码。本文将介绍一些常见原因和解决方法,帮助您解决这个问题。第一种可能的原因是未

如何利用Vue实现图片的分级和渲染处理?概述在现代web应用的开发中,图片的处理是一个非常常见的需求。而利用Vue.js,一个流行的JavaScript框架,实现图片的分级和渲染处理变得非常简单和高效。本文将展示如何通过Vue.js来实现图片的分级和渲染处理,并附带代码示例。步骤一:创建Vue实例首先,我们需要创建一个Vue实例来管理图片的数据和逻辑。在HT

重绘和回流对渲染阶段的影响:谁更重要?当网页进行渲染时,浏览器会按照一定的顺序执行一系列操作,以显示页面内容。其中,重绘和回流是渲染过程中的两个重要步骤。本文将探讨重绘和回流对渲染阶段的影响,并分析它们的重要性。重绘和回流的含义和区别在了解重绘和回流对渲染的影响之前,我们先来了解一下它们的含义和区别。重绘(Repaint)是指当元素的样式发生变化,但并未影响

理解Canvas渲染模式的原理和实现,需要具体代码示例首先,我们需要明确Canvas是HTML5提供的绘图API,它允许我们在浏览器中使用JavaScript来绘制图形、动画和其他可视化效果。Canvas可以使用两种渲染模式进行绘制:2D渲染模式和WebGL渲染模式。2D渲染模式是Canvas默认的模式,它使用HTML5中Canvas元素的2D上下文来绘制图


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

禅工作室 13.0.1
功能强大的PHP集成开发环境

Atom编辑器mac版下载
最流行的的开源编辑器

SublimeText3汉化版
中文版,非常好用