angularjs学习第六天笔记(指令简介学习)
您好,由于周末有事情,没哟学习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学习第六天笔记(指令简介学习)的更多相关文章
- AngularJS的表达式、指令的学习(2)
最近没有那么忙,就来系统学习一下AngularJS吧,昨天简单的认识了一下,今天就从表达式入手吧,嘿嘿. 一.AngularJS 表达式 AngularJS表达式写在双大括号内:{{expressio ...
- iOS阶段学习第六天笔记(数组)
iOS学习( ...
- iOS 阶段学习第六天笔记(数组)
iOS学习( ...
- 强化学习读书笔记 - 02 - 多臂老O虎O机问题
# 强化学习读书笔记 - 02 - 多臂老O虎O机问题 学习笔记: [Reinforcement Learning: An Introduction, Richard S. Sutton and An ...
- 强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods)
强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods) 学习笔记: Reinforcement Learning: An Introduction, Richard S ...
- 强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning)
强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning) 学习笔记: Reinforcement Learning: An Introductio ...
- Python学习基础笔记(全)
换博客了,还是csdn好一些. Python学习基础笔记 1.Python学习-linux下Python3的安装 2.Python学习-数据类型.运算符.条件语句 3.Python学习-循环语句 4. ...
- 强化学习读书笔记 - 13 - 策略梯度方法(Policy Gradient Methods)
强化学习读书笔记 - 13 - 策略梯度方法(Policy Gradient Methods) 学习笔记: Reinforcement Learning: An Introduction, Richa ...
- 强化学习读书笔记 - 12 - 资格痕迹(Eligibility Traces)
强化学习读书笔记 - 12 - 资格痕迹(Eligibility Traces) 学习笔记: Reinforcement Learning: An Introduction, Richard S. S ...
随机推荐
- ABP框架系列之三十四:(Multi-Tenancy-多租户)
What Is Multi Tenancy? "Software Multitenancy refers to a software architecture in which a sing ...
- MySQL-5.7安装
2.1 下载mysql 网址:https://www.mysql.com/ [root@localhost ~]# mkdir -p /root/soft/MySQL [root@localhost ...
- Maven的多mirrors的配置
repo1 central Human Readable Name for this Mirror. http://repo1.maven.org/maven2/ repo2 central Huma ...
- 注册Docker官网账号 注册按钮不能点
出现如下问题:注册按钮不能点,解决办法,如下 关于docker hub上不能注册dockeID的问题 注意的是,google访问助手,用在线安装,360安全浏览器,再重启下该浏览器,省得装插件.
- pb数据导出
pb数据导出(一) 1.在窗口新建用户事件 ue_export 2.事件调用函数 gf_dw_to_excel(THIS.dw_dict) 3.写函数 :boolean lb_setborde ...
- CPU Hardwar
GPU负责把线程块分配到各个SM上处理. CUDA对申请的线程块何时运行,以及在哪个SM上运行是没有保证的.这恰好是GPU的优势,这种方式带来了灵活性,不需程序根据SM的数量去配置程序. 但是一个bl ...
- Eclipse 中 Debug 时鼠标悬停无法查看变量值
问题描述:Eclipse在Debug模式下,当鼠标移动到某个变量上面时不自动显示该变量对应的值. 解决方法:在Eclipse中点击 Window->Preferences->Java-&g ...
- 夜谈Java类的定义
女孩:谈Java了,好耶? 男孩:夜谈一下,Java的类的定义~ 女孩:那谈Java的类的什么呢? 男孩:类的定义,对象的定义,类中的方法,构造方法,this关键字,方法的重载,Java中的类的访问权 ...
- AndroidStudio环境安装与配置
前言 大家好,给大家带来AndroidStudio环境安装与配置的概述,希望你们喜欢 AndroidStudio IDE下载 我们选择用Android Studio开发Android的App,Andr ...
- 仿B站项目(4)webpack打包第三方库jQuery
概述 在项目中不可避免的会用到jquery等第三方库,来看看有什么问题,怎么解决. 遇到的问题 一般情况下,直接require第三方库,比如jquery,然后webpack会自动把第三方库打包进bun ...