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
Nov 25 Javascript
web性能优化之javascript性能调优
Dec 28 Javascript
js弹出层永远居中实现思路及代码
Nov 29 Javascript
jQuery中animate用法实例分析
Mar 09 Javascript
深入学习JavaScript中的原型prototype
Aug 13 Javascript
jQuery层级选择器实例代码
Feb 06 Javascript
Angular 2父子组件数据传递之局部变量获取子组件其他成员
Jul 04 Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
Oct 27 Javascript
Angular中点击li标签实现更改颜色的核心代码
Dec 08 Javascript
解决angularjs service中依赖注入$scope报错的问题
Oct 02 Javascript
移动端自适应flexible.js的使用方法(不用三大框架,仅写一个单html页面使用)推荐
Apr 02 Javascript
Vue登录拦截 登录后继续跳转指定页面的操作
Aug 04 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中用header图片地址 简单隐藏图片源地址
2008/04/09 PHP
PHP5 面向对象(学习记录)
2009/12/02 PHP
PHP中鲜为人知的10个函数
2014/02/28 PHP
ThinkPHP模板替换与系统常量及应用实例教程
2014/08/22 PHP
利用PHP实现开心消消乐的算法示例
2017/10/12 PHP
jQuery事件绑定和委托实例
2014/11/25 Javascript
JavaScript中property和attribute的区别详细介绍
2015/03/03 Javascript
jQuery实现的多屏图像图层切换效果实例
2015/05/07 Javascript
jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
2016/01/15 Javascript
基于Bootstrap仿淘宝分页控件实现代码
2016/11/07 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
2017/01/09 Javascript
Grunt针对静态文件的压缩,版本控制打包的实例讲解
2017/09/29 Javascript
vue之浏览器存储方法封装实例
2018/03/15 Javascript
原生JS实现图片懒加载之页面性能优化
2019/04/26 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
vue导入.md文件的步骤(markdown转HTML)
2020/12/31 Vue.js
玩转python爬虫之正则表达式
2016/02/17 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
python贪婪匹配以及多行匹配的实例讲解
2018/04/19 Python
对python的输出和输出格式详解
2018/12/08 Python
利用Python实现手机短信监控通知的方法
2019/07/22 Python
ORM Django 终端打印 SQL 语句实现解析
2019/08/09 Python
利用pyecharts实现地图可视化的例子
2019/08/12 Python
python自动化测试之异常及日志操作实例分析
2019/11/09 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
2020/03/10 Python
Django import export实现数据库导入导出方式
2020/04/03 Python
Python基础教程之输入输出和运算符
2020/07/26 Python
需要知道的CSS3动画技术
2010/01/01 HTML / CSS
浅析HTML5中的 History 模式
2017/06/22 HTML / CSS
护士毕业生自我鉴定
2014/02/08 职场文书
2014年大学生村官工作总结
2014/11/19 职场文书
岗位聘任报告
2015/03/02 职场文书
复兴之路展览观后感
2015/06/02 职场文书
如何利用Python实现n*n螺旋矩阵
2022/01/18 Python
Python pyecharts绘制条形图详解
2022/04/02 Python
Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
2022/06/21 Python