<!DOCTYPE html>
<html ng-app='myApp'>
<head>
<meta charset="utf-8">
<script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script>
</head>
<body> <div ng-controller="listCtrl">
<input type="text" ng-model="t" />
<test title="{{t}}" >
<span>我的angularjs</span>
</test>
</div>
</body> <script>
var myApp=angular.module('myApp',[]);
myApp.controller('listCtrl',function($scope){
$scope.logchore="motorola";
}); myApp.directive('test',function(){
return {
'restrict':'E',
scope:{
title:"@"
},
template:'<div >{{title}}+内部</div>' }
});
</script>
</html>
<!DOCTYPE html>
<html ng-app='myApp'>
<head>
<meta charset="utf-8">
<script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script>
</head>
<body> <div ng-controller="listCtrl">
<input type="text" ng-model="t" />
<test title="t" >
<p>{{title}}</p>
<span>我的angularjs</span>
</test>
</div> </body> <script>
var myApp=angular.module('myApp',[]);
myApp.controller('listCtrl',function($scope){
$scope.logchore="motorola";
}); myApp.directive('test',function(){
return {
'restrict':'E',
scope:{
title:"="
},
template:'<div >{{title}}+内部</div>' }
}); </script>
</html>
<!DOCTYPE html>
<html ng-app='myApp'>
<head>
<meta charset="utf-8">
<script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script>
</head>
<body> <div ng-controller="listCtrl">
<test flavor="logchore()" ></test>
</div> </body> <script>
var myApp=angular.module('myApp',[]);
myApp.controller('listCtrl',function($scope){
$scope.logchore=function(){
alert('ok');
};
}); myApp.directive('test',function(){
return {
'restrict':'E',
scope:{
flavor:"&"
},
template:'<div ><button ng-click="flavor()"></button></div>' }
}); </script>
</html>
<!DOCTYPE html>
<html ng-app='myApp'> <head>
<meta charset="utf-8">
<script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script>
</head> <body> @father:
<input type="text" ng-model="data" />
<me title="{{data}}">@</me> =father:
<input type="text" ng-model="msg" />
<you title="msg">=</you>
<div ng-controller="listCtrl">
<test flavor="logchore(str)"></test>
</div>
</body> <script>
var app = angular.module("myApp", []);
app.controller('listCtrl', function ($scope) {
$scope.logchore = function (str) {
alert(str);
};
}); app.directive('me', function () {
return {
restrict: "E", //单向绑定,父元素可以改变子元素的model,子元素不能改变父元素的model
scope: {
title: '@'
},
template: "<div>{{title}}@:<input type='text' ng-model='title'/></div>"
}
}); app.directive('you', function () {
return {
restrict: "E",
scope: {
title: "=" //双向绑定,父元素可以改变子元素的model,子元素可以改变父元素的model
},
template: "<div>{{title}}=:<input type='text' ng-model='title'/></div>"
}
}) app.directive('test', function () {
return {
'restrict': 'E',
scope: {
flavor: "&"
},
//&是负责方法调用的,其中可以添加参数
template: '<div><input ng-model="v"/><button ng-click="flavor({str:v})">点击</button></div>'
}
});
</script> </html>
  • @ 当指令编译到模板的name时,就会到scope中寻找是否含有name的键值对,如果存在,就像上面那样,看到@就知道这是一个单向的数据绑定,然后寻找原来的那个使用指令的元素上(或者是指令元素本身)含有这个值的属性即my-name={{name}},然后在父作用域查找{{name}}的值,得到之后传递给模板中的name。????
  • =&@差不多,只不过=进行的是双向的数据绑定,不论模板还是父作用域上的属性的值发生改变都会使另一个值发生改变,而&是绑定函数而已

AngularJS1.X指令的更多相关文章

  1. AngularJS1.X学习笔记4-内置事件指令及其他

    AngularJS为我们定义了一系列事件指令,方便我们对用户的操作作出响应.甚至他还有一个可选模块提供了触摸事件和手势事件的支持,为移动端开发提供了可能.现在开始学习一下AngularJS的事件指令. ...

  2. AngularJS1.X学习笔记3-内置模板指令

    前面学习了数据绑定指令,现在开始学习内置模板指令.看起来有点多,目测比较好理解.OK!开始! 一.ng-repeat 1.基本用法 <!DOCTYPE html> <html lan ...

  3. AngularJS1.X学习笔记10-自定义指令(下)

    继续继续,学完这个部分就去吃饭.引用自由男人的话作为本文的开始:“默认情况下,链接函数被传入了控制器的作用域,而该控制器管理着的视图包含了指令所应用到的元素”.果然像是绕口令,还是看看你的例子比较好. ...

  4. AngularJS1.X学习笔记9-自定义指令(中)

    今天好大的雨啊!上一节中,我们的指令中的工厂函数中都是返回了一个叫做链接函数的工人函数,事实上我们的工厂函数也是可以返回一个对象,这个对象里面可以包含很多的属性,这使得我们可以创建更加强大的指令. 一 ...

  5. AngularJS1.X学习笔记8-自定义指令(上)

    AngulaJS的指令是一种非常强大的特性,一个ng-repeat就能让我们非常方便的展示一个数据列表,指令相当于是一个组件,为我们将一些东西封装起来了,提供了复用的可能性.个人认为自定义指令还是比较 ...

  6. angularJS1笔记-(17)-ng-bind-html指令

    angular不推荐大家在绑定数据的时候绑定html,但是如果你非要这么干也并不是不可以的.举个例子: <!DOCTYPE html> <html lang="en&quo ...

  7. angularJS1笔记-(11)-自定义指令(transclude/priority/terminal)

    自定义指令的属性 transclude:为true时,允许把html中新定义的指令中原来的dom运用到该指令的template中. 属性priority,设置该指令的优先级,优先级大的先执行,默认指令 ...

  8. angularJS1笔记-(10)-自定义指令(templateUrl属性)

    index.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  9. angularJS1笔记-(9)-自定义指令(restrict/template/replace)

    index.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

随机推荐

  1. cf 76 div2

    传送门 题意 t组样例 n个学生, x最多交换次数 a交换的第一个位置 b交换的第二个位置 最多是交换n-1次,不懂的话可以找个数列自己模拟一下: 然后其他的就是abs(a-b)+x;两个位置之间的距 ...

  2. Python的基础知识,不同于其他编程语言

    1.字符串拼接可以不使用+号 name = "this " "is " "a " "string" 2.使用''' ‘’ ...

  3. Linux新手常用命令

    Linux下有时候需要转换到管理员权限 su root   然后输入密码  或者直接  su ---------------------------------------- 但可能存在鉴定错误的异常 ...

  4. Python语言——列表生成式

    生成[1x1, 2x2, 3x3, ..., 10x10]列表: >>> L = [] >>> for x in range(1, 11):... >> ...

  5. 用apt-get解决dpkg过程中出现的依赖问题

    dpkg命令不解决依赖问题,这点对新手很不友好 当使用dpkg -i *.deb 安装出现依赖问题的时候,可以尝试如下解决方法: apt-get -f -y install # 复制粘贴回车,inst ...

  6. HDFS核心类FileSystem的使用

    一.导入jar包 本次使用的是eclipse操作的,所以需要手动导入jar包 在Hadoop.7.7/share/hadoop里有几个文件夹 common为核心类,此次需要引入common和hdfs两 ...

  7. js 模拟鼠标拖动

    window.addEventListener('message', function (event) { if (event.source != window) return; if (event. ...

  8. python基础之省份三级菜单

    菜单 menu = { #定义一个字典 '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, '汽车之家 ...

  9. 吴裕雄--天生自然ORACLE数据库学习笔记:PL/SQL编程

    set serveroutput on declare a ; b ; c number; begin c:=(a+b)/(a-b); dbms_output.put_line(c); excepti ...

  10. Java面向对象编程 -1.2

    类与对象简介 类是某一类事物的共性的抽象概念 而对象描述的是一个具体的产物 类是一个模板,而对象才是类可以使用的实例,先有类再有对象 在类之中一般都会有两个组成: 成员属性(Filed) :有些时候为 ...