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+CSS 图片等比缩小并垂直居中实现代码
Dec 01 Javascript
Javascript中的this绑定介绍
Sep 22 Javascript
jQuery 获取浏览器所在的IP地址的小例子
Nov 08 Javascript
js 动态加载事件的几种方法总结
Dec 25 Javascript
javascript和jquery实现设置和移除文本框默认值效果代码
Jan 13 Javascript
JS实现弹性漂浮效果的广告代码
Sep 02 Javascript
浅谈Sticky组件的改进实现
Mar 22 Javascript
JS随机洗牌算法之数组随机排序
Mar 23 Javascript
JS去掉字符串中所有的逗号
Oct 18 Javascript
微信小程序简单实现form表单获取输入数据功能示例
Nov 30 Javascript
Javascript 关于基本类型和引用类型的个人理解
Nov 01 Javascript
VUE实时监听元素距离顶部高度的操作
Jul 29 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
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
2007/02/11 PHP
PHP 创建标签云函数代码
2010/05/26 PHP
PHP中的string类型使用说明
2010/07/27 PHP
解析在apache里面给php写虚拟目录的详细方法
2013/06/24 PHP
PIGCMS 如何关闭聊天机器人
2015/02/12 PHP
cakephp打印sql语句的方法
2015/02/13 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
关于JavaScript中原型继承中的一点思考
2012/07/25 Javascript
Jquery实现图片放大镜效果的思路及代码(自写)
2013/10/18 Javascript
jQuery取得设置清空select选择的文本与值
2014/07/08 Javascript
javascript检查浏览器是否支持flash的实现代码
2014/08/14 Javascript
js获取会话框prompt的返回值的方法
2015/01/10 Javascript
jQuery获得包含margin的outerWidth和outerHeight的方法
2015/03/25 Javascript
谈谈Jquery中的children find 的区别有哪些
2015/10/19 Javascript
jquery实现表格隔行换色效果
2015/11/19 Javascript
javascript绘制漂亮的心型线效果完整实例
2016/02/02 Javascript
jquery easyUI中ajax异步校验用户名
2016/08/19 Javascript
vue.js入门教程之基础语法小结
2016/09/01 Javascript
JavaScript中的return布尔值的用法和原理解析
2017/08/14 Javascript
axios+Vue实现上传文件显示进度功能
2019/04/14 Javascript
微信小程序组件传值图示过程详解
2019/07/31 Javascript
Vue.js watch监视属性知识点总结
2019/11/11 Javascript
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
python实现从ftp服务器下载文件的方法
2015/04/30 Python
Python实现通过文件路径获取文件hash值的方法
2017/04/29 Python
python+matplotlib演示电偶极子实例代码
2018/01/12 Python
利用Python检测URL状态
2019/07/31 Python
python psutil模块使用方法解析
2019/08/01 Python
维多利亚的秘密阿联酋官网:Victoria’s Secret阿联酋
2019/12/07 全球购物
汽修专业自荐信
2014/07/07 职场文书
本科应届生求职信
2014/08/05 职场文书
贯彻落实“八项规定”思想汇报
2014/09/13 职场文书
九不准学习心得体会
2016/01/23 职场文书
浅谈CSS不规则边框的生成方案
2021/05/25 HTML / CSS
JavaScript原型链详解
2021/11/07 Javascript
Win11任务栏太宽了怎么办?一招解决Win11任务栏太宽问题
2021/11/21 数码科技