简话Angular 06 Angular自定义指令

一句话: 直接return link函数可以解决大多数问题,无须死扣用法

1. 上源码 (dom操作,事件,css,mode操作全包括了)

 1 <h3>Custom directive, with dom operation, events, css and scope model operation</h3>
 2
 3
 4         <div ng-controller="DateController">
 5           Date format: <input ng-model="format"> <hr/>
 6           Current time is: <span my-current-time="format"></span>
 7         </div>
 8
 9
10
11         <script>
12         var myApp = angular.module(‘myApp‘, []);
13
14         myApp.controller(‘DateController‘, function($scope) {
15             $scope.format = "M/d/yy h:mm:ss a";
16         });
17
18         myApp.directive(‘myCurrentTime‘, [‘$interval‘, ‘dateFilter‘, function($interval, dateFilter) {
19             function link(scope, element, attrs) {
20                 var format, timeoutId;
21
22                 function getRandomColor() {
23                     var letters = ‘0123456789ABCDEF‘.split(‘‘);
24                     var color = ‘#‘;
25                     for (var i = 0; i < 6; i++ ) {
26                         color += letters[Math.floor(Math.random() * 16)];
27                     }
28                     return color;
29                 }
30
31                 function updateTime() {
32                     element.text(dateFilter(new Date(), format));
33                     element.css({‘background-color‘: getRandomColor()});
34                 }
35
36                 scope.$watch(attrs.myCurrentTime, function(value) {
37                     format = value;
38                     updateTime();
39                 });
40
41                 element.on(‘$destroy‘, function() {
42                     $interval.cancel(timeoutId);
43                 });
44
45                 element.on(‘click‘, function(){
46                     alert(‘Date format is changing to yyyy/MM/dd hh‘);
47                     scope.format = "yyyy/MM/dd hh " + getRandomColor();
48                 });
49
50                 // start the UI update process; save the timeoutId for canceling
51                 timeoutId = $interval(function() {
52                     updateTime(); // update DOM
53                 }, 1000);
54             }
55
56             return {
57                 link: link
58             };
59         }]);
60         </script>
61     </div>

2. 在线查看运行效果

http://jimuyouyou.github.io/angular-bootstrap-rest-seed/examples/angular/6-custom-directive.html

3. 项目地址

github: https://github.com/jimuyouyou/angular-bootstrap-rest-seed

时间: 2024-12-18 16:28:55

简话Angular 06 Angular自定义指令的相关文章

angular.js创建自定义指令-demo3

html: <!doctype html><html ng-app="myModule"> <head> <meta charset="utf-8"> </head> <body> <hello></hello> </body> <script src="js/angular-1.3.0.js"></script>

Angular 学习笔记——自定义指令之间的交互

<!DOCTYPE html> <html lang="en" ng-app="myApp"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript" src="jquery-1.11.1.js"></sc

Angular 学习笔记——自定义指令

<!DOCTYPE HTML> <html ng-app="myApp"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>无标题文档</title> <style> #div1 div,#div2 div{ width:200px; height:

angular 自定义指令 详解--restrict、restrict、replace

Angularjs 允许根据实际业务需要自定义指令, 通过angular全局对象下的 directive 方法实现.可以自定义属性.自定义标签.自定义功能 接下来定义一个名叫custom的指令,并利用这个自定义指令来实现元素的替换 html代码: <body ng-app="app"> <p custom></p> <custom></custom> js代码: var app = angular.module("a

angular 自定义指令 directive transclude 理解

项目中断断续续的用了下angular,也没狠下心 认真的学习.angular 特别是自定义指令这块 空白. transclude 定义是否将当前元素的内容转移到模板中.看解释有点抽象. 看解释有点抽象Demo: <!DOCTYPE html> <html lang="en" ng-app='myApp'> <head> <meta charset="UTF-8"> <title>Angularjs</

简话Angular 01 初识Angular 数据绑定

1. Angular有哪些突出优点 1) MVC 基于Html-Javascript 2) 依赖注入 3) 数据双向绑定,响应式页面设计 4) 模块化,自定义指令 2. 简话数据绑定 1) 代码: 1 <input type="text" ng-model="hello1"> 2 3 <input type="text" ng-model="hello2"> 4 5 <textarea ng-bi

Angular17 Angular自定义指令

1 什么是HTML HTML文档就是一个纯文本文件,该文件包含了HTML元素.CSS样式以及JavaScript代码:HTML元素是由标签呈现,浏览器会为每个标签创建带有属性的DOM对象,浏览器通过渲染这些DOM节点来呈现内容,用户在浏览器中看到的内容就是浏览器渲染DOM对象后的结果. 2 指令的分类 组件.属性指令.结构性指令 具体的知识点请参见<Angular2揭秘> 3 指定义指令常用到的一些常量 3.1 Directive 用于装饰控制器类来指明该控制器类是一个自定义指令控制器类 3.

angular的自定义指令---详解

1.angualr指令 在angualr自己里面有许多丰富的指令,但都是平时所常见的,但对于自己所需要的可能有所欠缺,所以自己可能会摒弃原声指令,自己封装更为健壮灵活的指令: 其实angular里面的指令也是基于下面所用到的步骤来创建的,只不过他都添加到了全局中,所以可以直接使用: 2.创建自定义指令 首先创建模块app,再使用app的服务directive方法, 创建指令内容第一个参数自定义的名字,第二个参数是自定义参数属性对象,该对象包括的属性基本在代码注释解释清楚: // a.创建模块 v

简话Angular 01 为什么要学Angular

1. JQuery vs Javascipt 问两个问题: 1) 你用过JQuery吗?当然! 2) 感觉JQuery相对于原生纯Javascript优势在哪里? 我的答案:JQuery更直接方便,兼容性好,代码少,好理解,快速开发,Bug少…… 2. Angular vs JQuery 参照JQuery vs Javascript 3. Angular的前途怎么样 假如今天是2008年,有人问JQuery前途怎么样,你知道吗?现在你知道JQuery前途了吗? 4. Angular可以不学吗 不