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启动应用程序的一个简单例子
May 11 Javascript
jquery统计复选框选中示例
Nov 05 Javascript
js取模(求余数)隔行变色
May 15 Javascript
网站接入QQ登录的两种方法
Jul 22 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
Aug 02 Javascript
jQuery实现产品对比功能附源码下载
Aug 09 Javascript
[原创]JS基于FileSaver.js插件实现文件保存功能示例
Dec 08 Javascript
67 个节约开发时间的前端开发者的工具、库和资源
Sep 12 Javascript
详解基于 Nuxt 的 Vue.js 服务端渲染实践
Oct 24 Javascript
vue项目总结之文件夹结构配置详解
Dec 13 Javascript
基于JS实现html中placeholder属性提示文字效果示例
Apr 19 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
Jun 24 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基础教程 php内置函数实例教程
2012/08/21 PHP
PHP时间戳与日期之间转换的实例介绍
2013/04/19 PHP
Add a Table to a Word Document
2007/06/15 Javascript
Javascript select控件操作大全(新增、修改、删除、选中、清空、判断存在等)
2008/12/19 Javascript
ajax 文件上传应用简单实现
2009/03/03 Javascript
简单实用的js调试logger组件实现代码
2010/11/20 Javascript
js完美的div拖拽实例代码
2014/01/22 Javascript
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
sencha ext js 6 快速入门(必看)
2016/06/01 Javascript
jQuery中JSONP的两种实现方式详解
2016/09/26 Javascript
详解jQuery事件
2017/01/13 Javascript
javaScript中封装的各种写法示例(推荐)
2017/07/03 Javascript
简单的网页广告特效实例
2017/08/19 Javascript
11行JS代码制作二维码生成功能
2018/03/09 Javascript
vue-for循环嵌套操作示例
2019/01/28 Javascript
JS字典Dictionary类定义与用法示例
2019/02/01 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
TypeScript 引用资源文件后提示找不到的异常处理技巧
2020/07/15 Javascript
Vue多选列表组件深入详解
2021/03/02 Vue.js
[05:28]刀塔密之一:团结则存
2014/07/03 DOTA
[56:41]iG vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/17 DOTA
用Python编写一个简单的Lisp解释器的教程
2015/04/03 Python
常见的在Python中实现单例模式的三种方法
2015/04/08 Python
pyenv命令管理多个Python版本
2017/03/26 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
2018/01/31 Python
python连接、操作mongodb数据库的方法实例详解
2019/09/11 Python
python cv2截取不规则区域图片实例
2019/12/21 Python
python3中使用__slots__限定实例属性操作分析
2020/02/14 Python
英国最受欢迎的在线隐形眼镜商店:VisionDirect.co.uk
2018/12/06 全球购物
Sony C++笔试题
2013/03/10 面试题
设计顾问服务计划书
2014/05/04 职场文书
设计专业毕业生求职信
2014/06/25 职场文书
2014年评职称工作总结
2014/11/20 职场文书
赔偿协议书
2015/01/27 职场文书
外出学习心得体会范文
2016/01/18 职场文书
2016年小学圣诞节活动总结
2016/03/31 职场文书