Angular1.0与Vue循环指令的区别

1、获取ng-repeat和v-for循环生成的节点

比较:

  • ng-repeat生成的节点不能直接获取
    解决方案:自定义一个指令监听ng-repeat渲染完再执行相应的DOM操作
  • v-for生成的节点可以直接获取

angular

<!DOCTYPE html>
<html ng-app="myModule">
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body ng-controller="myController">
    <ul>
      <li ng-repeat="item in arr" repeat-finish="renderFinish()">{{item}}</li>
    </ul>
      <script src="js/angular.js"></script>
      <script>
        var app = angular.module('myModule', ['ng']);
        app.controller('myController', function($scope, $http){
          $scope.name = 'mary';
          $scope.arr = [1, 3, 4, 5];
          console.log(document.querySelectorAll('li').length);  // 0

          $scope.renderFinish = function() {
              console.log('渲染完成之后的操作',document.querySelectorAll('li').length);  // 4
          }
        })

        // 自定义一个repeat-finish的指令,监听ng-repeat渲染完成后执行的脚步
        app.directive('repeatFinish', function() {
          return {
            link: function(scope, element, attr) {
              if (scope.$last == true) {
                scope.$eval(attr.repeatFinish);
              }
            }
          }
        })
      </script>
    </body>
</html>

vue

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
    </style>
  </head>
  <body>
    <ul class="box">
        <li v-for="item in arr">{{item}}</li>
    </ul>

    <script src="js/vue.js"></script>
    <script>
      var mes = {
        arr: [1, 3, 4, 5]
      }
      new Vue({
        el: '.box', 
        data: mes
      })
      console.log(document.querySelectorAll('li').length);  // 4
    </script>
  </body>
</html>

转载于:https://www.cnblogs.com/Zting00/p/7497645.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值