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 相关文章推荐
css值转换成数值请抛弃parseInt
Oct 24 Javascript
javascript学习笔记(四) Number 数字类型
Jun 19 Javascript
js+html5操作sqlite数据库的方法
Feb 02 Javascript
Bootstrap的Refresh Icon也spin起来
Jul 13 Javascript
微信小程序 rpx 尺寸单位详细介绍
Oct 13 Javascript
微信小程序 setData的使用方法详解
Apr 20 Javascript
Node.js readline模块与util模块的使用
Mar 01 Javascript
axios post提交formdata的实例
Mar 16 Javascript
Node.js使用Angular简单示例
May 11 Javascript
vue 实现数字滚动增加效果的实例代码
Jul 06 Javascript
详解Vue组件插槽的使用以及调用组件内的方法
Nov 13 Javascript
Vue 的双向绑定原理与用法揭秘
May 06 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
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
PHP禁止页面缓存的代码
2011/10/23 PHP
PHP调用Linux的命令行执行文件压缩命令
2013/01/27 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
2019/10/21 PHP
Ext 表单布局实例代码
2009/04/30 Javascript
JQuery 常用操作代码
2010/03/14 Javascript
js对象的比较
2011/02/26 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
Javascript连接多个数组不用concat来解决
2014/03/24 Javascript
原创jQuery弹出层插件分享
2015/04/02 Javascript
举例详解JavaScript中Promise的使用
2015/06/24 Javascript
基于JavaScript短信验证码如何实现
2016/01/24 Javascript
浅析Node.js:DNS模块的使用
2016/11/23 Javascript
jquery实现自定义图片裁剪功能【推荐】
2017/03/08 Javascript
js实现一个简单的数字时钟效果
2017/03/29 Javascript
vue 打包后的文件部署到express服务器上的方法
2017/08/09 Javascript
如何抽象一个Vue公共组件
2017/10/17 Javascript
ES6 Generator基本使用方法示例
2020/06/06 Javascript
[04:13]2014DOTA2国际邀请赛 专访DC目前形势不容乐观
2014/07/12 DOTA
Python实现批量将word转html并将html内容发布至网站的方法
2015/07/14 Python
简单谈谈Python中的json与pickle
2017/07/19 Python
浅谈Python 递归算法指归
2019/08/22 Python
PyTorch和Keras计算模型参数的例子
2020/01/02 Python
详解Python3 中的字符串格式化语法
2020/01/15 Python
html2canvas截图空白问题的解决
2020/03/24 HTML / CSS
英国露营设备和户外服装购物网站:Simply Hike
2019/05/05 全球购物
武汉某公司的C#笔试题面试题
2015/12/25 面试题
企业宗旨标语
2014/06/10 职场文书
小学生教师节演讲稿
2014/09/03 职场文书
中国在我心中演讲稿
2014/09/13 职场文书
医学会议开幕词
2016/03/03 职场文书
如何写好活动总结
2019/06/21 职场文书
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python
python tqdm用法及实例详解
2021/06/16 Python
详解Python中的for循环
2022/04/30 Python
Nginx如何配置多个服务域名解析共用80端口详解
2022/09/23 Servers