发表于: 2017-05-01 23:46:55

1 1027


今天完成的事情:

为后台搜索框添加双向绑定,点击后根据搜索框中的条件进行搜索并展示结果,学习自定义angular指令。


明天的计划:

完成任务8.


遇到的问题:

1 angular双向绑定关键点理解:

angularjs中关于数据双向绑定的几个关键api有$watch()、$apply()以及$digest()。

$watch()用于视图向模型的检测,$apply()用于模型向视图的渲染。

$watch()监测模型是否发生变化,而在模型发生变化真正执行后续操作需要执行$digest()对watch队列进行循环检测。然而只有进入angular 的上下文环境才能执行$digest()循环检测,而进入angular的上下文环境需要执行$apply()。也就是说$scope.$apply()执行会自动触发$rootScope.$digest(),

如果我们写的指令在运行时没有进入到angular的上下文环境中,$watch()只会将模型的值进行保存而不会将model渲染进view中。常用的angular封装好的指令例如ng-click在执行后会自动进行数据的双向绑定,原因就是已经在指令中执行了$apply()。


2 自定义指令的关键词用法:

restrict: 描述指令在模版中的使用方式,包括:元素、样式类、属性、注释,或者以上几种方式的任意组合。

template: 以字符串的形式编写一个内联模板。

templateUrl: 加载模版所需要使用的url,如果已经指定了template,此属性会被忽略。

replace: 如果该属性为true,则替换指令所在的元素;如果为false或者不指定,则追加到元素内部。

transclude: 当此属性为true时,把指令元素中原来的子节点移动到一个新模板的内部。


收获:以上知识点。





返回列表 返回列表
评论

    分享到