如何使用AngularJS监听渲染
程序员文章站
2022-05-09 15:20:39
...
这次给大家带来如何使用AngularJS监听渲染,使用AngularJS监听渲染的注意事项有哪些,下面就是实战案例,一起来看一下。
实际上它是通过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
对象后,使用document.getElementById
获取到新增的<li>
对象,然后为其添加一个class="active"
,结果发现获取到的DOM
对象为null
,经过搜索发现原因是:往lists
数组push
对象后,数组发生改变,所有的<li>
都会重新渲染,在push
完成之后马上去找新增的DOM
对象,DOM
还没渲染好,因此是获取不到的。解法是:使用AngularJS
的指令去监听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); } } } });
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
以上就是如何使用AngularJS监听渲染的详细内容,更多请关注其它相关文章!
推荐阅读
-
详解如何使用Vue2做服务端渲染
-
监听angularJs列表数据是否渲染完毕的方法示例
-
使用AngularJS 跨站请求如何解决jsonp请求问题
-
AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
-
AngularJS中如何使用$http对MongoLab数据表进行增删改查
-
在AngularJS中如何使用谷歌地图把当前位置显示出来
-
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
-
如何使用AngularJs打造权限管理系统【简易型】
-
Angularjs中如何使用filterFilter函数过滤
-
详解使用angularjs的ng-options时如何设置默认值(初始值)