发表于: 2017-06-08 22:04:53
1 1047
今天完成的事情:
今天完成了关于我们联系我们的编写,包括响应效果,点击切换,再次学习了angular自定义指令。
明天的计划:
完成找精英的banner,服务流程,服务分析。
遇到的问题:
1 angular指令使用不熟悉,造成多出轮播指令出现各种报错:
.directive函数来添加自定义的指令。要调用自定义指令,HTML 元素上需要添加自定义指令名。使用驼峰法来命名一个指令, runoobDirective, 但在使用它时需要以 - 分割, runoob-directive,自定义指令的参数如下:
restrict是申明标识符在模板中作为元素,属性,类,注释或组合:有四个值:E、A、C、M。
注意:
(1)、推荐使用元素和属性的方式使用指令
(2)、当需要创建带有自己的模板的指令时,使用元素名称的方式创建指令
(3)、当需要为已有的HTML标签增加功能时,使用属性的方式创建指令
template:指令链接DOM模板
templateUrl是指定一个字符串式的内嵌模板,如果你指定了模板是一个URL,那么是不会使用的:
注意:
由于加载html模板是通过异步加载的,若加载大量的模板会拖慢网站的速度,可以先缓存模板。例如:
var myModule = angular.module("MyModule", []);
//注射器加载完所有模块时,此方法执行一次;缓存
myModule.run(function($templateCache){
$templateCache.put("hello.html","<div>Hello world!!!</div>");
});
myModule.directive("hello", function($templateCache) {
return {
restrict: 'AECM',
template: $templateCache.get("hello.html"),
replace: true
}
});
ink通过代码修改目标DOM元素的实例,添加事件监听,建立数据绑定。compile函数用来对模板自身进行转换,而link函数负责在模型和视图之间进行动态关联;compile函数仅仅在编译阶段运行一次,而对于指令的每个实例,link函数都会执行一次;compile可以返回preLink和postLink函数,而link函数只会返回postLink函数,如果需要修改DOM结构,应该在postLink中来做这件事情,而如果在preLink中做这件事情会导致错误;大多数时候我们只要编写link函数即可。
link函数有四个参数分别为:
(1)scope,与指令元素相关联的作用域
(2)element,当前指令对应的 元素
(3)attrs,由当前元素的属性组成的对象
(4)supermanCtrl,若指令中定义有require选项,则会有supermanCtrl参数,代表控制器或者所依赖的指令的控制器。
收获:以上
评论