搜索
首页web前端js教程如何确认ng-repeat渲染完成

这次给大家带来如何确认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"表示指令放在DOMclass中(驼峰形式,即class="repeat-finish"),scope.$last === true表示已经渲染到了最后一个对象,此时执行change_list函数(定义在控制器中,功能是把当前active的对象取消active,然后设置传入的DOM对象为active),element[0]可以直接取到当前渲染的DOM元素。注意我使用了$timeout10ms后执行change_list,我发现直接使用change_list还是会找不到DOM,原因不明,期待大神解答。

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

Vue.js+Flask来构建单页的App(附代码)

不使用vue代码规范检测方法总结

以上是如何确认ng-repeat渲染完成的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
酷家乐怎么渲染正交俯视图_酷家乐渲染正交俯视图教程酷家乐怎么渲染正交俯视图_酷家乐渲染正交俯视图教程Apr 02, 2024 pm 01:10 PM

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

vue页面渲染是同步还是异步vue页面渲染是同步还是异步Dec 13, 2022 pm 07:26 PM

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

Vue报错:无法正确使用v-html渲染动态HTML代码,怎样解决?Vue报错:无法正确使用v-html渲染动态HTML代码,怎样解决?Aug 19, 2023 pm 12:27 PM

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

Vue3中的v-for函数:完美解决列表数据渲染Vue3中的v-for函数:完美解决列表数据渲染Jun 19, 2023 am 08:04 AM

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

Vue报错:无法正确使用v-html渲染HTML代码,怎样解决?Vue报错:无法正确使用v-html渲染HTML代码,怎样解决?Aug 26, 2023 am 11:25 AM

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

如何利用Vue实现图片的分级和渲染处理?如何利用Vue实现图片的分级和渲染处理?Aug 19, 2023 pm 07:53 PM

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

重绘和回流:哪个对渲染阶段的影响更为关键?重绘和回流:哪个对渲染阶段的影响更为关键?Jan 26, 2024 am 10:16 AM

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

掌握Canvas渲染模式的实现及工作原理掌握Canvas渲染模式的实现及工作原理Jan 17, 2024 am 08:40 AM

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

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

SecLists

SecLists

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

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用