发表于: 2017-04-27 21:58:36
1 1003
今天完成的事情:今天完成了任务9的上传缩图部分。由于自己看二大的gif图理解错了。以为点击上传是显示缩略图。没想到二大说点击上传以后的图片是从端口请求的。所以。。只能重新改一下代码。
明天计划的事情:继续任务9.
遇到的问题:今天遇到的问题:
1.获取到了file【0】的数据以后。{{x.name}}不能显示名字。
2.点击上传生产的预览图要点击2次才能生成。
上面两个问题都是因为没有加$apply().
3.progress进度条的问题。。这个进度条0-100的speed 是不是 文件大小/上传速度。。。有什么方法能得到图片上传服务器的速度吗?
4.我的inpnt file 点击响应的速度很慢。原因首先chorme 本身就响应慢。再者我在input里加了accept=”image/*”
导致更加慢。在safari中响应速度还可以。估计是chorme自身的原因。
收获:
$apply().
angular js的双向数据绑定,在开发中起到的作用灰常大,但是,并不是所有时候都能起作用。
找了下资料发现,双向数据绑定其实也就是当模型发生了变化的时候,重绘了DOM,使你看到数据被更新了,引发模型变化的情况有:
1,dom事件;
2,xhr响应触发回调;
3,浏览器的地址变化;
4,计时器触发回调;
以上的某一个情况发生,都会触发模型监控机制,同时调用了$apply方法,重绘了dom;通常情况下,我们使用的一些指令或服务,如$http,$timeout,$location等都会调用$apply方法,
从而使用dom被重绘,数据得到更新,实现了双向数据绑定。
而在有些情况下,比如回调里,
回调函数里执行的方法被不会触发$apply方法。假如当你点击打了比较input select radio等等,触发了模型监控,值也随之更新了。
此时需要手动调$scope方法,使dom重绘。
function b(){
//方法1
$scope.b='b';
$scope.$apply();
//方法2
/**$scope.$apply(function(){
$scope.b='b';
})**/
}
评论