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':''
};   //修改后的赋值

<input type="text" ng-model="title" />

<input type="text" ng-model="theTitle.title" />  //同理,html中的绑定也随之变化

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

$scope.ctrlScope = $scope
<input ng-model="ctrlScope.myMessage" />

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值