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 相关文章推荐
jQuery textarea的长度进行验证
May 06 Javascript
JQuery优缺点分析说明
Jun 09 Javascript
jquery.mousewheel实现整屏翻屏效果
Aug 30 Javascript
最常见的左侧分类菜单栏jQuery实现代码
Nov 28 Javascript
Jquery Easyui分割按钮组件SplitButton使用详解(17)
Dec 18 Javascript
解析JavaScript实现DDoS攻击原理与保护措施
Dec 26 Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
Apr 04 Javascript
JavaScript模拟文件拖选框样式v1.0的实例
Aug 04 Javascript
vue组件表单数据回显验证及提交的实例代码
Aug 30 Javascript
用js编写留言板
Mar 17 Javascript
vue中用 async/await 来处理异步操作
Jul 18 Javascript
微信小程序动态评分展示/五角星展示/半颗星展示/自定义长度展示功能的实现
Jul 22 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
10个实用的PHP正则表达式汇总
2014/10/23 PHP
浅谈php优化需要注意的地方
2014/11/27 PHP
php绘图之加载外部图片的方法
2015/01/24 PHP
PHP计算加权平均数的方法
2015/07/16 PHP
PHP PDOStatement::execute讲解
2019/01/31 PHP
php框架知识点的整理和补充
2021/03/01 PHP
Extjs学习笔记之三 extjs form更多的表单项
2010/01/07 Javascript
jquery可见性过滤选择器使用示例
2013/06/24 Javascript
jQuery post数据至ashx实例详解
2016/11/18 Javascript
jquery实现图片平滑滚动详解
2017/03/22 jQuery
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
JS图片延迟加载插件LazyImgv1.0用法分析【附demo源码下载】
2017/09/04 Javascript
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
Router解决跨模块下的页面跳转示例
2018/01/11 Javascript
vue项目实现记住密码到cookie功能示例(附源码)
2018/01/31 Javascript
Vue项目中跨域问题解决方案
2018/06/05 Javascript
vue使用echarts图表的详细方法
2018/10/22 Javascript
Vue程序化的事件监听器(实例方案详解)
2020/01/07 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
小程序开发之模态框组件封装
2020/04/23 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
2020/06/22 Javascript
JS实现按比例缩小图片宽高
2020/08/24 Javascript
js在HTML的三种引用方式详解
2020/08/29 Javascript
对python自动生成接口测试的示例讲解
2018/11/30 Python
Python3.6.2调用ffmpeg的方法
2019/01/10 Python
pandas DataFrame 行列索引及值的获取的方法
2019/07/02 Python
详解Python Qt的窗体开发的基本操作
2019/07/14 Python
Django:使用filter的pk进行多值查询操作
2020/07/15 Python
Python 调用 ES、Solr、Phoenix的示例代码
2020/11/23 Python
台湾森森购物网:U-mall
2017/10/16 全球购物
电信专业毕业生推荐信
2013/11/18 职场文书
家长写给老师的建议书
2014/03/13 职场文书
缓刑人员思想汇报500字
2014/09/12 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
处级干部考察材料
2014/12/24 职场文书
小学生禁毒教育心得体会
2016/01/15 职场文书