发表于: 2017-01-05 02:05:12

2 2077


今天完成的事情:看了下angular权威指南、用angularJS开发下一代web应用、精通angularJS、大漠的视频、网上攻略中的angular指令部分;配置了微信小程序的开发环境;试着按照攻略写了一个没什么用的微信小程序,主要是为了熟悉;看了些微信小程序的官方中文文档;弄了一个叫IT阅读障碍的笔记来搜集遇到的不认识的英语单词;


明天计划的事情:继续肝指令,经过明天应该可以自由使用指令了;找一个性能比较好、功能比较全的公用后台接口来测试小程序什么的,想要做个有点意思的或者自己喜欢的网站的样式的小程序;有时间可以重构下任务十,感觉controller太臃肿,玩太多dom不够angular,应该把dom弄到指令的link里,把通用函数抽离成服务。


遇到的问题:学习效率不高,进度感人;用多了angular在微信小程序里用原生时感觉很别扭;


收获:感觉对于指令的学习量变到了临界点,快要掌握了,对于其中的各种属性基本都了解了和部分理解了。


webstorm双击shift“超级”搜索;shift+F6可以修改函数名,变量名,文件名,同时修改所有引用的位置。F6移动文件并且修改文件的引用位置



编译工作是在作用域创建之前执行的,所以在编译函数中没有任何可用的作用域数据,一旦所有指令都被编译完成,angularJS就会创建作用域,然后通过调用每个指令对应的链接函数将指令和作用域连接起来。在连接阶段,作用域已经被附加到指令上,所以链接函数可以将作用域和DOM绑定起来。如果指令中有一些不依赖作用域数据的复杂功能,那么这些功能应该放在编译函数中,这样该功能就只会被调用一次。
compile函数用来对模版自身进行转换,而link函数负责在模型和视图之间进行动态关联。compile函数仅仅在编译阶段运行一次,而link函数会执行很多次,对于指令的每一个势力,link函数都会执行一次。link函数可以访问scope对象,而compile不会,因为scope对象在编译阶段还不存在。可以在compile函数中返回link韩明淑,这些link函数仍然可以访问scope对象。

compile和link函数都会接受到对应DOM元素的及其属性列表,所以函数形参带有一个t2(template)前缀;而link函数会接收到视图实例对象,视图实例是使用模版创建的,所以函数形参带有一个i3(instance)前缀。


link属性,表示当directive被angular编译后,执行该方法。这个方法接受三个参数,
scope表示controller下面的数据
element表示当前的DOM元素
attr表示这个DOM元素上的自定义属性
controller能够暴露内部方法让外部去调用

require表示依赖,使用后可以给link中的function加入第四个参数(控制器),在执行时会自动把控制器注入指令中,可以调用控制器中暴露的那些方法了

绑定策略是将独立scope作用域里的属性和父指令属性绑定在一起,当同名时可以缩写‘@’‘=’‘&’



返回列表 返回列表
评论

    分享到