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 相关文章推荐
JSON 教程 json入门学习笔记
Sep 22 Javascript
JavaScript 数组运用实现代码
Apr 13 Javascript
jQuery中:has选择器用法实例
Dec 30 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
Apr 17 Javascript
jQuery代码实现发展历程时间轴特效
Jul 30 Javascript
javascript代码调试之console.log 用法图文详解
Sep 30 Javascript
HTML5实现微信拍摄上传照片功能
Apr 21 Javascript
Angularjs 手写日历的实现代码(不用插件)
Oct 18 Javascript
jQuery解析json格式数据示例
Sep 01 jQuery
layui自定义工具栏的方法
Sep 19 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
Sep 07 Javascript
解决vant框架做H5时踩过的坑(下拉刷新、上拉加载等)
Nov 11 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
同时提取多条新闻中的文本一例
2006/10/09 PHP
php中过滤非法字符的具体实现
2013/10/29 PHP
使用Discuz关键词服务器实现PHP中文分词
2014/03/11 PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
2016/10/08 PHP
php实现留言板功能(代码详解)
2017/03/28 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
分享10篇优秀的jQuery幻灯片制作教程及应用案例
2011/04/16 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
2014/07/21 Javascript
js判断文本框剩余可输入字数的方法
2015/02/04 Javascript
angularJS 中$attrs方法使用指南
2015/02/09 Javascript
JavaScript获取DOM元素的11种方法总结
2015/04/25 Javascript
jquery右下角自动弹出可关闭的广告层
2015/05/08 Javascript
js实现发送验证码后的倒计时功能
2015/05/28 Javascript
javascript封装 Cookie 应用接口
2015/08/07 Javascript
JavaScript模块化开发之SeaJS
2015/12/13 Javascript
微信小程序-滚动消息通知的实例代码
2017/08/03 Javascript
JS中‘hello’与new String(‘hello’)引出的问题详解
2018/08/14 Javascript
vue自定义tap指令及tap事件的实现
2018/09/18 Javascript
vue路由缓存的几种实现方式小结
2020/02/02 Javascript
javascript 易错知识点实例小结
2020/04/25 Javascript
vue Element左侧无限级菜单实现
2020/06/10 Javascript
Python中利用sqrt()方法进行平方根计算的教程
2015/05/15 Python
python实现杨辉三角思路
2017/07/14 Python
Python2.7+pytesser实现简单验证码的识别方法
2017/12/29 Python
Python实现的建造者模式示例
2018/08/06 Python
Python 实现取多维数组第n维的前几位
2019/11/26 Python
Python生成并下载文件后端代码实例
2020/08/31 Python
如何利用Python 进行边缘检测
2020/10/14 Python
python爬取微博评论的实例讲解
2021/01/15 Python
2014年小学植树节活动方案
2014/03/02 职场文书
工作业绩不及格检讨书
2014/10/28 职场文书
少先队辅导员事迹材料
2014/12/24 职场文书
管理失职检讨书
2015/05/05 职场文书
2016国庆节67周年红领巾广播稿
2015/12/18 职场文书
青年教师听课心得体会
2016/01/15 职场文书
java实现对Hadoop的操作
2021/07/01 Java/Android