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 相关文章推荐
简单的js分页脚本
May 21 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
Jun 02 Javascript
jquery制作多功能轮播图插件
Apr 02 Javascript
JavaScript事件委托实例分析
May 26 Javascript
简单谈谈javascript Date类型
Sep 06 Javascript
bootstrap响应式工具使用详解
Nov 29 Javascript
javascript中关于类型判断的一些疑惑小结
Oct 14 Javascript
Vue Echarts实现可视化世界地图代码实例
May 07 Javascript
基于layui实现高级搜索(筛选)功能
Jul 26 Javascript
JS实现网页时钟特效
Mar 25 Javascript
sharp.js安装过程中遇到的问题总结
Apr 02 Javascript
在vue中使用echarts(折线图的demo,markline用法)
Jul 20 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
PHP时间戳使用实例代码
2008/06/07 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
2011/11/02 PHP
php正则表达式使用的详细介绍
2013/04/27 PHP
PHP中执行cmd命令的方法
2014/10/11 PHP
分享PHP函数实现数字与文字分页代码
2015/07/28 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
2018/05/28 PHP
Firefox window.close()的使用注意事项
2009/04/11 Javascript
JavaScript 存在陷阱 删除某一区域所有节点
2010/05/10 Javascript
jquery连缀语法如何实现
2012/11/29 Javascript
window.showModalDialog参数传递中含有特殊字符的处理方法
2013/06/06 Javascript
用jQuery实现的智能隐藏、滑动效果的返回顶部代码
2014/03/18 Javascript
把Node.js程序加入服务实现随机启动
2015/06/25 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
2016/04/14 Javascript
jQuery插件FusionCharts实现的3D柱状图效果实例【附demo源码下载】
2017/03/03 Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
2017/11/21 Javascript
Vue侧滑菜单组件——DrawerLayout
2017/12/18 Javascript
详解vue 项目白屏解决方案
2018/10/31 Javascript
JSX在render函数中的应用详解
2019/09/04 Javascript
Python编程实现二分法和牛顿迭代法求平方根代码
2017/12/04 Python
详解django三种文件下载方式
2018/04/06 Python
pytorch 数据集图片显示方法
2018/07/26 Python
如何利用Python开发一个简单的猜数字游戏
2019/09/22 Python
Django app配置多个数据库代码实例
2019/12/17 Python
Python+appium框架原生代码实现App自动化测试详解
2020/03/06 Python
美国一家专业的太阳镜网上零售商:Solstice太阳镜
2016/07/25 全球购物
Nisbets法国:英国最大的厨房和餐饮设备供应商
2019/03/18 全球购物
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
Antler英国官网:购买安特丽行李箱、拉杆箱
2019/08/25 全球购物
伦敦鲜花递送:Flower Station
2021/02/03 全球购物
物理系毕业生自荐书范文
2014/02/22 职场文书
80后职场人的职业生涯规划
2014/03/08 职场文书
2014最新开业庆典策划方案(5篇)
2014/09/15 职场文书
2014县委书记四风对照检查材料思想汇报
2014/09/21 职场文书
工作检讨书怎么写
2015/01/23 职场文书
领导干部学习三严三实心得体会
2016/01/05 职场文书
A22国内电台短波广播频率表
2022/05/10 无线电