angularjs 数据不更新,单击才会更新

今天遇到了一个问题,angularjs 在一个树结构,也就是多重ng-repeat中。树节点的点击事件是刷新右侧的列表,但是点击完以后,需要再次单击才会刷新上一次的数据,不能实时更新。用到了$timeout,不知道跟它有没有关系。最后的解决办法是,发送请求成功以后,用$apply()包裹起来,如下所示:

$scope.$apply(function(){
                    $scope.roomitems = result.items;
                    //获取章节
                    $scope.totalcount = result.totalCount;
                    console.log(result);
                    $scope.apages = Math.ceil($scope.totalcount / $scope.apageSize); //分页数
                    var count = 0;
                    for (var n in $scope.roomitems) {
                        if ($scope.roomitems.hasOwnProperty(n)) {
                            count++;
                        }
                    }
                    $scope.selpagecount = count;

                    if ((count == 0) && ($scope.selPage != 1)) {
                        $scope.selPage = $scope.selPage - 1;
                        $scope.settable();
                        return true;
                    }
                    if ($scope.selPage <= 2) {
                        $scope.pageList = [];
                        $scope.newPages = $scope.apages > 5 ? 5 : $scope.apages;
                        //分页要repeat的数组
                        for (var i = 0; i < $scope.newPages; i++) {
                            $scope.pageList.push(i + 1);
                        }
                    }
                    if ($scope.selPage > 2) {
                        //因为只显示5个页数,大于2页开始分页转换
                        if ($scope.selPage < ($scope.apages - 1)) {
                            var newpageList = [];
                            for (var i = ($scope.selPage - 3); i < (($scope.selPage + 2) > $scope.apages ? $scope.apages : ($scope.selPage + 2)); i++) {
                                newpageList.push(i + 1);
                            }
                            $scope.pageList = newpageList;
                        }
                        else {
                            var newpageList = [];
                            for (var i = $scope.apages; i > ($scope.selPage > 5 ? $scope.apages - 5 : 0); i--) {
                                //console.log(i);
                                newpageList.push(i);
                                newpageList.sort(function (m, n) {
                                    return m - n;
                                });
                            }
                            $scope.pageList = newpageList;
                        }
                    }
                });

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值