您好,由于周末有事情,没哟学习angularjs,几天晚上开始继续学习angularjs,坚持加油每一天。谢谢

  接着上周五学习了表单验证以后,今天开始学习angularjs中一个非常重要的模块:指令

  今天主要先简单了解学习一下指令的一些基本概念后使用

  一、指令的简介

    指令其实就是angularjs对html的一个扩展,实现自定义html元素

    angularjs其自身封装了一些常用的系统指令,我们也可以根据需要自定义指令

  二、自定义指令简介

    自定义指令的基本格式

      app.directive("指令名称",function(){

        restrict: '指令匹配格式',

        replace: true,是否自定义元素替代指令申明

        template: '<a href="http://www.baidu.com">百度一下马上达</a>'

      });

    自定义指令关键词说明:

      指令名称说明:名字一般采用驼峰命名,及首字母小写其余单词大写

              在调用时,要将大写字母转换为小写并加上-

              举例:myDirectiveTest  调用为:my-directive-test

              备注:由于其内部指令是以ng开头,所以为了避免冲突,自定义指令名称不要以ng开头

      restrict有四种枚举值:

        E:指令按照元素来匹配

          使用:<my-directive-test></my-directive-test>

        C:按照class来匹配

          使用:<div class='my-directive-test'></div>

        A:按照属性来匹配

          使用:<div my-directive-test></div>

        M:按照注释来匹配

          <!--directive:my-directive-test-->

        虽然提供了四种匹配方式,但是考虑到浏览器的兼容性问题,尽可能按照属性来匹配:A

      一个简单的练习:

      

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body ng-app="myApp">
<my-directive-e></my-directive-e><br />
<div my-directive-a></div><br />
<p class="my-directive-c"></p><br />
</body>
</html>
<script src="Scripts/angular.js"></script>
<script type="text/javascript">
var app = angular.module("myApp", []);
app.directive("myDirectiveE", function () {
return {
restrict: "E",
replace: true,
template: "<a href='http://www.baidu.com'>百度一下马上达</a>"
}
});
app.directive("myDirectiveA", function () {
return {
restrict: "A",
replace: true,
template: "<a href='http://www.baidu.com'>百度一下马上达</a>"
}
});
app.directive("myDirectiveC", function () {
return {
restrict: "C",
replace: true,
template: "<a href='http://www.baidu.com'>百度一下马上达</a>"
}
});
</script>

三、指令中的数据传递

  指令中数据传递采用的方式也是数据绑定方式{{}}

  其实数据传递原理是:实现指令中的绑定是和html中属性想匹配

  其实现步骤:

    1、首先需要给指令创建一个隔离作用域

    2、定义与html中属性值匹配方式,有如下匹配方式:

      指令中的属性名称:"@html中的属性名称"

      指令中的属性名称:"@"  如果只有@那么html中的属性名称必定有指令中的属性名称完全一致

      指令中的属性名称:"=html中的属性名称" ,实现html和指令中的数据双向绑定

  @匹配方式简单练习

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body ng-app="myApp">
<div my-directive-a my-valuess="点击我吧" url="http//:www.baidu.com"></div><br />
</body>
</html>
<script src="Scripts/angular.js"></script>
<script type="text/javascript">
var app = angular.module("myApp", []);
app.directive("myDirectiveA", function () {
return {
restrict: "A",
replace: true,
scope:{
myValuess: "@",
myLink:"@url"
},
template: "<a href='{{myLink}}'>{{myValuess}}</a>"
}
});
</script>

  通过=实现双向数据绑定练习:

  

<!DOCTYPE html>
<html lang="zh-CN" ng-app="app">
<head>
<meta charset="utf-8">
<title></title>
<script src="Scripts/angular.js"></script>
</head>
<body>
<label>硬编码的input</label>
<input type="text" ng-model="Url">
<div my-directive some-attrs="Url"></div> <script src="../angular.min.js"></script>
<script>
angular.module('app', [])
.directive('myDirective', function() {
return {
restrict: 'A',
replace: true,
scope: {
myUrl: '=someAttrs', // 等号用做 双向绑定 这里不做详细介绍
},
template: '<div>'+
'<label>指令中的input</label>'+
'<input type="text" ng-model="myUrl">'+
'<a href="{{ myUrl }}">点我试试</a>'+
'</div>' }
})
</script>
</body>
</html>

  

今天就到此为止,明天继续研究表单验证,明天学习:angularjs内置指令

 

angularjs学习第六天笔记(指令简介学习)的更多相关文章

  1. AngularJS的表达式、指令的学习(2)

    最近没有那么忙,就来系统学习一下AngularJS吧,昨天简单的认识了一下,今天就从表达式入手吧,嘿嘿. 一.AngularJS 表达式 AngularJS表达式写在双大括号内:{{expressio ...

  2. iOS阶段学习第六天笔记(数组)

                                                                                                  iOS学习( ...

  3. iOS 阶段学习第六天笔记(数组)

                                                                                                  iOS学习( ...

  4. 强化学习读书笔记 - 02 - 多臂老O虎O机问题

    # 强化学习读书笔记 - 02 - 多臂老O虎O机问题 学习笔记: [Reinforcement Learning: An Introduction, Richard S. Sutton and An ...

  5. 强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods)

    强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods) 学习笔记: Reinforcement Learning: An Introduction, Richard S ...

  6. 强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning)

    强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning) 学习笔记: Reinforcement Learning: An Introductio ...

  7. Python学习基础笔记(全)

    换博客了,还是csdn好一些. Python学习基础笔记 1.Python学习-linux下Python3的安装 2.Python学习-数据类型.运算符.条件语句 3.Python学习-循环语句 4. ...

  8. 强化学习读书笔记 - 13 - 策略梯度方法(Policy Gradient Methods)

    强化学习读书笔记 - 13 - 策略梯度方法(Policy Gradient Methods) 学习笔记: Reinforcement Learning: An Introduction, Richa ...

  9. 强化学习读书笔记 - 12 - 资格痕迹(Eligibility Traces)

    强化学习读书笔记 - 12 - 资格痕迹(Eligibility Traces) 学习笔记: Reinforcement Learning: An Introduction, Richard S. S ...

随机推荐

  1. 73.解决Xcode10 library not found for -lstdc++ 找不到问题

    Xcode10 彻底废除了libstdc++,相关文件libstdc++.6.0.9.dylib.libstdc++.6.dylib.libstdc++.dylib.libstdc++.6.0.9.t ...

  2. html-day06

    html-day06 1.定位 定位: 1.普通流定位 普通流,又称为文档流 块级元素:从上到下一个一个的排列 行内元素:一行内从左到右的排列 2.浮动定位 1.什么是浮动定位 将元素排除在普通流之外 ...

  3. visual studio 2013怎样快速查看代码函数关系--代码图

    可以发现没有调试运行代码时是无法查看代码图的,可以在某行加一个断点,如下图,并开始debug调试: 这时,就会在代码调试工具栏看到代码图按钮,点击它: 右边就会出现代码图了: 这下就方便多了. 不仅适 ...

  4. 如何搭建zabbix server端

    1.背景介绍: nginx:1.9.3 安装路径/data/nginxphp:5.5.27 安装路径 /data/phpmysql:5.6.28 安装路径/usr/local/mysqlzabbix ...

  5. JavaScript标准库之 ----  Object

    Object.assign() 方法可以把任意多个的源对象自身的可枚举属性拷贝给目标对象,然后返回目标对象. 语法:  Object.assign(target, ...sources) 参数: ta ...

  6. js实现粒子特效,particles.js的使用

    今天偶然看到了一个比较炫酷的js网页.是粒子特效的,就试着用了用.一下是步骤,方便以后查看使用. 1.在网站下载源码https://github.com/VincentGarreau/particle ...

  7. vi显示中文乱码

    问题:vi/vim 编辑ANSI文本时,中文会显示乱码! 解决方法:修改vi/vim配置文件,添加如下红色并加粗的部分! vi    配置文件路径:/etc/vircvim 配置文件路径:/etc/v ...

  8. unity 简单通用游戏模式设计

    好吧好吧,又谈到这个问题了,其实早就想写这个博客了,犹豫了好久.在设计游戏的时候我本人是很排斥什么游戏架构设计,mvc什么的,我只想马上动手就把自己的游戏玩法最快的用代码敲出来,还不会出无法挽回的错误 ...

  9. c# 多线程实现ping 多线程控制控件

    这个备份器放在项目目录下面,每次使用就双击一下,因为便捷性,就不采用xml等等储存信息,全部在面板内做,这样可以保证一个exe就运行了. 我发现运行起来还蛮快的,唯一没有实现的是ping通的电脑如果出 ...

  10. Java中的Lock接口

    Synchronized & Lock synchronized 是Java语言中的关键字,由monitorenter,monitorexit两个指令实现.JVM会将monitorenter指 ...