angularjs解决页面异步加载的问题

本文介绍了一种在AngularJS项目中解决数据获取与筛选问题的方法,利用消息广播机制实现组件间通信,确保数据能被正确地传递和处理。通过具体案例展示了如何使用$scope.$broadcast和$scope.$on来发送和监听消息,从而实现数据的有效更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

案列:由于项目中有地方一个API返回来了所有的信息,后面我需要根据这些信息进行筛选查询,就遇到了,前面的数据拿不到的               情况

解决方案:消息广播的机制

$scope.getColumnTree = function() {
      var path = "menu/getColumnTree.show";
      var param = {};
      param.menuId = $scope.menuId;
      // param.status = 1;
      videoService.serviceFunction(path, param, function(returnValue) {
        if (returnValue.status.returnCode != -1) {
          $scope.columnTree = returnValue.data.list;
          for (var i = 0; i < $scope.columnTree.length; i++) {
            // $scope.getCourseList($scope.columnTree[i].currentColumn.columnCode,i);
            $scope.classFlag = true;
            if ($scope.columnTree[i].childColumnSortTreeList == null) {
              $scope.columnTree[i].childColumnSortTreeList = new Array();
            }
            switch (i) {
              case 0:
                $scope.areaList = $scope.columnTree[0];
                break;
              case 1:
                $scope.artList = $scope.columnTree[1];
                break;
              case 2:
                $scope.schoolList = $scope.columnTree[2];
                break;
              case 3:
                $scope.cultureList = $scope.columnTree[3];
                break;
              case 4:
                $scope.scienceList = $scope.columnTree[4];
                break;
              case 5:
                $scope.lifeList = $scope.columnTree[5];
                break;
              case 6:
                $scope.appreciateList = $scope.columnTree[6];
                break;
            }
          }
          $scope.col_list = $scope.columnTree;
          console.log($scope.col_list);
          $scope.$broadcast("returnValueLoaded");
        }
      });
    };

这个时候我们需要用到广播$scope.$broadcast。发送广播以后,需要通过$scope.$on进行监听。

$scope.$on("returnValueLoaded",function(){
        $scope.getCourseList($scope.areaList.currentColumn.columnCode,0);
        $scope.getCourseList($scope.artList.currentColumn.columnCode,1);
    })

网上还有一些其他的推荐方法,推荐地址:https://blog.youkuaiyun.com/guduyishuai/article/details/52947723

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值