发表于: 2017-07-10 23:20:22
1 1078
1、学习自定义指令
自定义指令中使用AngularJS扩展HTML的功能。自定义指令使用的“指令”的功能定义。自定义指令只是替换了它被激活的元素。引导过程中AngularJS应用程序找到了匹配的元素,并做好使用自定义指令compile()方法一次活动再处理使用基于指令的范围自定义指令link()方法的元素。 AngularJS提供支持,以下列元素的类型来创建自定义指令。
Element directives - 指令遇到时激活一个匹配的元素。
Attribute - - 指令遇到时激活一个匹配的属性。
CSS - - 指令遇到时激活匹配CSS样式。
Comment - - 指令遇到时激活匹配的注释。
一个指令的定义应当是如下这个样子:
code:
angular.module('myApp', [])
.directive('myDirective', function (UserDefinedService) {
// 指令定义放在这里
});
其中,fun中的注入参数为angular自带或用户定义的服务,需要在指令内部中调用。分析其结构:
· angular.module('myApp', []) :是声明整个应用对象的。
· .directive('myDirective', fun(){}) :directive方法接受两个参数:字符串和函数。
字符串myDirective是用以在视图中引用特定的指令。而函数则返回一个对象,这个对象中定义了指令的全部行为,$compile服务利用这个方法返回的对象,在DOM调用指令时来构造指令的行为。即:
angular.module('myApp', [])
.directive('myDirective', function (UserDefinedService) {
return {
}
});
当然除了返回一个对象,其实也可以返回一个函数:
angular.module('myApp', [])
.directive('myDirective', function (UserDefinedService) {
return function() { //此时这个函数叫做“链接传递函数”
}
});
但是一般地,都采用返回对象的形式,这样指令的定义可以更丰富。返回函数的情况只有在定义非常简单的指令时才可能会使用。
2、还在写上传按钮的自定义指令,
3、目前代码情况,已将http请求写入服务并控制器内引用。
4、上传按钮的指令代码今天完成,后面再看看哪些东西可以继续使用指令或者服务进行封装比较合适。
5、准备复盘项目,除了萝卜多是电脑端网页,其余几个可选项目以手机端居多另外还有app程序等,感觉可选择面还是比较窄,下载资料,看讲解视频,分析文档等。
收获:自定义指令学习
困难:服务和指令封装,个人理解,前者封装一个返回函数事件,后者封装一个具体执行事件,但是对具体区别和实际应用的适用性还不是很清楚。
计划:上传按钮的指令代码今天完成。
评论