angularJS变量变化时页面视图不更新问题

页面视图不更新时,在方法后手动调用$scope.$apply()方法,手动更新视图

举例如下:

else if(count==1){

 $scope.showImg=dataBase64;
 strHead=dataBase64.indexOf('data:image/');
 strFoot=dataBase64.indexOf('base64,',strHead)+7;
 strValue=dataBase64.substring(strHead,strFoot);
 dataBase64=dataBase64.replace(strValue,'');
 $scope.sendImg=dataBase64;
}

$scope.$apply();

也可将需手动更新视图的方法写入$scope.$apply()中,达到同样的目的

菜鸡笔者在解决此问题后又遇到一个更玄幻的问题,input框的ng-model双向绑定失效,除了在{{value}}中绑定值正常,在打印与传值中等操作中都是以最初赋的值呈现,在询问度娘尝试后得到如下方法:

$scope.title=''; //之前的赋值
$scope.theTitle={
'title':''
};   //修改后的赋值


  //同理,html中的绑定也随之变化

打印后发现数据正常,网上还有另一种方法,

$scope.ctrlScope = $scope

大概思路是将所用对象设为一个对象中的属性,并以对象的形式绑定值,亲测可用,原理未知,可能涉及到原型链,scope的相关知识,项目紧,在这就不赘述了,希望这些总结对各位有帮助。

你可能感兴趣的:(angularJS变量变化时页面视图不更新问题)