为了账号安全,请及时绑定邮箱和手机立即绑定

angular中ng-click事件

angular中ng-click事件

临摹微笑 2018-11-10 15:11:57
我在ng-click事件中修改了$scope,为什么页面部分被修改的数据没有重新渲染<ol>        <li  ng-repeat="(index,obj) in thinglist" ng-class="{done:obj.isDone}" ng-click="do(index)">{{ obj.text }}      <button ng-click="delete(index)"> X</button>  </li>     </ol>在reset方法里面我设置了修改many的值,每次调用下面的do和add的时候,只有add会重新渲染页面.
查看完整描述

1 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

送你一句话:this != $scope

尝试修改成这样:


    $scope.reset=function(){

                var sum=0;

                $scope.thinglist.forEach(function (item,index){

                    if(!item.isDone){

                        sum++;

                    }

                })

                $scope.many=sum;

                // $scope.$apply();

                console.log(this.many);

            }

            $scope.add=function(ei){

                // console.log(this)

                $scope.thinglist.push({

                    text:this.thing,

                    isDone:false

                });

                $scope.thing="";

                // this.many++;

                $scope.reset();

                // console.log(this.thinglist);

            }

            $scope.do=function(index){

                // console.log(this);

                // this.many=this.many-1;

                $scope.thinglist[index].isDone=!$scope.thinglist[index].isDone;

                $scope.reset();

                // $emit('reset');                  

                // console.log($scope.$digest)

                // this.$digest();

                // console.log(this.many);

                // $scope.$apply;

                

            }


查看完整回答
反对 回复 2018-12-03
  • 1 回答
  • 0 关注
  • 1117 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信