发表于: 2017-06-08 22:04:53

1 1049


今天完成的事情:

今天完成了关于我们联系我们的编写,包括响应效果,点击切换,再次学习了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参数,代表控制器或者所依赖的指令的控制器。


收获:以上



返回列表 返回列表
评论

    分享到