您好,欢迎访问一九零五行业门户网

如何使用AngularJS监听渲染

这次给大家带来如何使用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);      }    }  }});
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
js做出鼠标经过文字时弹出悬浮层特效
如何使用angular组件交互
以上就是如何使用angularjs监听渲染的详细内容。
其它类似信息

推荐信息