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 相关文章推荐
use jscript with List Proxy Server Information
Jun 11 Javascript
javascript小数计算出现近似值的解决办法
Feb 06 Javascript
jquery 应用代码 方便的排序功能
Feb 06 Javascript
可选择和输入的下拉列表框示例
Nov 05 Javascript
JS中window.open全屏命令解析及使用示例
Dec 11 Javascript
jQuery中die()方法用法实例
Jan 19 Javascript
IE6-IE9使用JSON、table.innerHTML所引发的问题
Dec 22 Javascript
jQuery拖动元素并对元素进行重新排序
Dec 30 Javascript
详解 vue.js用法和特性
Oct 15 Javascript
Bootstrap treeview实现动态加载数据并添加快捷搜索功能
Jan 07 Javascript
jQuery 导航自动跟随滚动的实现代码
May 30 jQuery
Node.js EventEmmitter事件监听器用法实例分析
Jan 07 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编程中的常见漏洞和代码实例
2014/08/06 PHP
PHP 与 UTF-8 的最佳实践详细介绍
2017/01/04 PHP
ThinkPHP 框架实现的读取excel导入数据库操作示例
2020/04/14 PHP
javascript一元操作符(递增、递减)使用示例
2013/08/07 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
2016/02/05 Javascript
JS中正则表达式只有3种匹配模式(没有单行模式)详解
2016/07/28 Javascript
浅谈angularjs $http提交数据探索
2017/01/20 Javascript
jQuery Plupload上传插件的使用
2017/04/19 jQuery
NodeJs通过async/await处理异步的方法
2017/10/09 NodeJs
vue 中引用gojs绘制E-R图的方法示例
2018/08/24 Javascript
vue.js响应式原理解析与实现
2020/06/22 Javascript
微信小程序自定义导航栏实例代码
2019/04/05 Javascript
js实现圆形显示鼠标单击位置
2020/02/11 Javascript
详解ES6实现类的私有变量的几种写法
2021/02/10 Javascript
基于python的七种经典排序算法(推荐)
2016/12/08 Python
Python 查看文件的编码格式方法
2017/12/21 Python
详解Tensorflow数据读取有三种方式(next_batch)
2018/02/01 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
2018/02/08 Python
删除python pandas.DataFrame 的多重index实例
2018/06/08 Python
Python实现基于KNN算法的笔迹识别功能详解
2018/07/09 Python
Python Tkinter模块实现时钟功能应用示例
2018/07/23 Python
Pandas读取MySQL数据到DataFrame的方法
2018/07/25 Python
AUC计算方法与Python实现代码
2020/02/28 Python
Python用类实现扑克牌发牌的示例代码
2020/06/01 Python
Django中Q查询及Q()对象 F查询及F()对象用法
2020/07/09 Python
CSS3 简单又实用的5个属性
2010/03/04 HTML / CSS
html5 冒号分隔符对齐的实现
2019/07/31 HTML / CSS
大学四年的个人自我评价
2014/01/14 职场文书
校运会广播稿100字
2014/01/27 职场文书
中学生期中自我鉴定
2014/04/20 职场文书
档案信息化建设方案
2014/05/16 职场文书
党员批评与自我批评思想汇报
2014/10/08 职场文书
群众路线对照检查剖析材料
2014/10/09 职场文书
python 中[0]*2与0*2的区别说明
2021/05/10 Python
Python Django模型详解
2021/10/05 Python
前端传参数进行Mybatis调用mysql存储过程执行返回值详解
2022/08/14 MySQL