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 相关文章推荐
超级强大的表单验证
Jun 26 Javascript
前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)
Mar 04 Javascript
jquery获取复选框被选中的值
Mar 22 Javascript
javascript事件冒泡详解和捕获、阻止方法
Apr 12 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
May 28 Javascript
使用ajax+jqtransform实现动态加载select
Dec 01 Javascript
JavaScript中的console.profile()函数详细介绍
Dec 29 Javascript
Javascript中3个需要注意的运算符
Apr 02 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
Jun 25 Javascript
利用JQuery直接调用asp.net后台的简单方法
Oct 27 Javascript
Javascript实现异步编程的过程
Jun 18 Javascript
小程序实现新用户判断并跳转激活的方法
May 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 彩色文字实现代码
2009/06/29 PHP
PHP 程序员应该使用的10个组件
2009/10/31 PHP
基于PHP CURL获取邮箱地址的详解
2013/06/03 PHP
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
2016/02/22 PHP
Laravel 队列使用的实现
2019/01/08 PHP
Javascript实例教程(19) 使用HoTMetal(3)
2006/12/23 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
Js保留小数点的4种效果实现代码分享
2014/04/12 Javascript
谈谈Jquery中的children find 的区别有哪些
2015/10/19 Javascript
Sea.JS知识总结
2016/05/05 Javascript
jQuery选择器实例应用
2017/01/05 Javascript
分享19个JavaScript 有用的简写写法
2017/07/07 Javascript
angular学习之从零搭建一个angular4.0项目
2017/07/10 Javascript
Vue press 支持图片放大功能的实例代码
2018/11/09 Javascript
详解vue中axios请求的封装
2019/04/08 Javascript
微信小程序常见页面跳转操作简单示例
2019/05/01 Javascript
原生JS实现留言板功能
2020/02/08 Javascript
[34:56]Ti4冒泡赛LGD vs Liquid 1
2014/07/14 DOTA
[12:21]VICI vs TNC (BO3)
2018/06/07 DOTA
python opencv实现证件照换底功能
2019/08/19 Python
Django 框架模型操作入门教程
2019/11/05 Python
tensorflow 环境变量设置方式
2020/02/06 Python
Python socket连接中的粘包、精确传输问题实例分析
2020/03/24 Python
Python替换NumPy数组中大于某个值的所有元素实例
2020/06/08 Python
python 数据类型强制转换的总结
2021/01/25 Python
一款纯css3实现的漂亮的404页面的实例教程
2014/11/27 HTML / CSS
html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
2013/01/09 HTML / CSS
浅析HTML5 meta viewport参数
2020/10/28 HTML / CSS
美国网上花店:JustFlowers
2017/02/12 全球购物
美国网上购买眼镜:Eyeconic
2017/07/29 全球购物
音乐学院硕士生的自我评价分享
2013/11/01 职场文书
大班亲子运动会方案
2014/06/10 职场文书
2014年教师党员自我评议
2014/09/19 职场文书
小学教师个人总结
2015/02/05 职场文书
银行求职信模板
2015/03/20 职场文书
springboot+VUE实现登录注册
2021/05/27 Vue.js