AngularJS指令中的绑定策略实例分析


Posted in Javascript onDecember 14, 2016

本文实例讲述了AngularJS指令中的绑定策略。分享给大家供大家参考,具体如下:

在前面的文章中,我们知道了指令如何生成独立的scope,这一节中我们来仔细研究一下scope中的绑定策略。

总体来说scope的绑定策略分为3种:

(1)@ : 绑定字符串

(2)=: 与父控制器进行双向绑定

(3)&:用于调用父scope中的函数

1.基础方式

<test word="{{wordCtrl}}"></test>
app.controller('myController1',['$scope',function($scope){
    $scope.wordCtrl="hello";
}]);
app.directive('test',function(){
    return{
     restrict:'E',
     template:"<div>{{word}}</div>",
     link:function(scope,ele,attr){
      scope.word=attr.word;
     }
    }
});

显示效果:

AngularJS指令中的绑定策略实例分析

这是最基础的方法,实现了字符串在scope中的绑定

2.实际上,我们可以通过改写实现上述的方法

app.directive('test',function(){
    return{
     restrict:'E',
     scope:{
      word:'@'
     },
     template:"<div>{{word}}</div>",
    }
});

可以通过删除link函数,并且增加@绑定,这样就成功的实现指令中的属性与指令scope的字符串绑定。

3.‘='绑定

如果使用=绑定,那么不仅可以改变指令中scope中值,同时也可以改变父控制器中的值,实现双向绑定。

例子:

<div>
   <span>ctrl:</span>
   <input ng-model="wordCtrl"/>
</div>
<test word="{{wordCtrl}}"></test>
app.directive('test',function(){
    return{
     restrict:'E',
     scope:{
      word:'@'
     },
     template:"directive:<input ng-model='word' />",
    }
});

效果就是,改变了指令中scope的值的同时也会改变控制器中相对应的变量的值,实现了控制器和指令中scope的双向绑定。

效果如下:

AngularJS指令中的绑定策略实例分析

3.‘&'方法

<test greet="sayHello()"></test>
app.directive('test',function(){
    return{
     restrict:'E',
     scope:{
      greet:'&'
     },
     template:"<div ng-click='sayHello({name:'yuxiaoliang'})'>点击说HELLO</div>",
    }
});

注意传递参数的方法。

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
JavaScript DOM 添加事件
Feb 14 Javascript
js 复制或插入Html的实现方法小结
May 19 Javascript
基于jQuery架构javascript基础体系
Jan 01 Javascript
jQuery阻止事件冒泡具体实现
Oct 11 Javascript
基于编写jQuery的无缝滚动插件
Aug 02 Javascript
JQuery勾选指定name的复选框集合并显示的方法
May 18 Javascript
js 动态生成json对象、时时更新json对象的方法
Dec 02 Javascript
老生常谈js中0到底是 true 还是 false
Mar 08 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
Jul 10 Javascript
谈谈JavaScript中super(props)的重要性
Feb 12 Javascript
详解vue-cli3开发Chrome插件实践
May 29 Javascript
js实现视图和数据双向绑定的方法分析
Feb 05 Javascript
JavaScript触发onScroll事件的函数节流详解
Dec 14 #Javascript
AngularJS指令与指令之间的交互功能示例
Dec 14 #Javascript
AngularJS指令与控制器之间的交互功能示例
Dec 14 #Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
Dec 14 #Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
Dec 14 #Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
Apr 18 #Javascript
微信小程序中使元素占满整个屏幕高度实现方法
Dec 14 #Javascript
You might like
在IIS7.0下面配置PHP 5.3.2运行环境的方法
2010/04/13 PHP
基于PHP静态类的原罪详解
2013/05/06 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
在laravel框架中使用model层的方法
2019/10/08 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
javascript下判断一个对象是否具有指定名称的属性的的代码
2010/01/11 Javascript
原生js实现改变随意改变div属性style的名称和值的结果
2013/09/26 Javascript
struts2+jquery组合验证注册用户是否存在
2014/04/30 Javascript
js实现鼠标悬浮给图片加边框的方法
2015/01/30 Javascript
jQuery+slidereveal实现的面板滑动侧边展出效果
2015/03/14 Javascript
js实现分割上传大文件
2016/03/09 Javascript
jquery基础知识第一讲之认识jquery
2016/03/17 Javascript
浅谈js for循环输出i为同一值的问题
2017/03/01 Javascript
详解vue与后端数据交互(ajax):vue-resource
2017/03/16 Javascript
TypeScript入门-接口
2017/03/30 Javascript
jQuery复合事件结合toggle()方法的用法示例
2017/06/10 jQuery
微信小程序实现YDUI的ScrollTab组件
2018/02/02 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
2018/10/30 Javascript
express.js中间件说明详解
2019/03/19 Javascript
如何在 Vue 表单中处理图片
2021/01/26 Vue.js
[58:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第一场 1月31日
2021/03/11 DOTA
Windows下Python的Django框架环境部署及应用编写入门
2016/03/10 Python
K-近邻算法的python实现代码分享
2017/12/09 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
2018/07/25 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
2019/08/12 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
2020/01/08 Python
Django分组聚合查询实例分享
2020/04/29 Python
python爬虫中采集中遇到的问题整理
2020/11/27 Python
matplotlib之多边形选区(PolygonSelector)的使用
2021/02/24 Python
卡塔尔航空官方网站:Qatar Airways
2017/02/08 全球购物
德购商城:德国进口直邮商城
2017/06/13 全球购物
技校毕业生个人学习的自我评价
2014/02/21 职场文书
上班离岗检讨书
2014/09/10 职场文书
工人先锋号事迹材料
2014/12/24 职场文书
2015年超市工作总结范文
2015/05/26 职场文书
解决IIS7下无法绑定https主机的问题
2022/04/29 Servers