发表于: 2017-07-06 23:28:02

1 851


今天完成的事情:

封装完毕图片指令


明天计划的事情:

整理项目,完善项目的细节。

解决项目中存在的bug。


遇到的问题:

之前自定义的指令在视图中没有显示出来,后来发现是因为指令用了驼峰写法,而写在html中没有转换成连词写法。之所以必须这样转换是因为html是不区分大小写的。


在jq中定义变量不双向绑定的问题,可以使用$apply绑定变量,变量值改变后视图上即会刷新为新值。


收获:

数据绑定的过程:

1.每次你绑定一些东西到你的UI上时你就会往$watch队列里插入一条$watch。

2.开始在视图中输入值。

3.浏览器接收到一个事件,调用$apply,将数据封装入$apply,进入angular context。

4.$digest循环开始执行,查询每个$watch是否变化。

5.检查到了$watch报告了变化,会再执行一次$digest循环。

6.再次执行$digest循环,直到没有检测到变化。

7.浏览器拿回控制权,更新与$scope.name新值相应部分的DOM。


每一个进入angular context的事件都会执行一个$digest循环,也就是说每次我们输入一个字母$digest循环都会检查整个页面的所有$watch。


当在jQuery中定义变量时,jQuery没有调用$apply,事件没有进入angular context,$digest循环永远没有执行。

解决方法即手动将变量封装入$apply,如:

element.bind('click', function() {
   scope.$apply(function() {
       scope.foo++;
       scope.bar++;
   });
})



返回列表 返回列表
评论

    分享到