博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Angular学习心得——directive的bindToController选项
阅读量:5877 次
发布时间:2019-06-19

本文共 1027 字,大约阅读时间需要 3 分钟。

hot3.png

      the component's properties are bound to the controller rather than to the scope.

      we can move all our property binding definitions to bindToController and make it an object literal

     这两段话引用自Pascal Precht在thoughtram blog上的一篇文章(链接:

/2015/01/02/exploring-angular-1.3-bindToController.html)

      意思是,当使用了bindToController选项后,组件的属性会被绑定到controller上,而不是scope上,并且我们可以把原本定义在scope中的属性绑定都迁移到bindToController选项中来,并成为对象字面量的形式

      意即,原本像如下形式的绑定策略:

      

scope:{   name:'=',   age:'='}

    更改为如下的形式:

bindToController:{   name:'=',   age:'='}

  接着,我们需要controller和controllerAs的帮忙,对controller进行实例化:

bindToController:{   name:'=',   age:'='},controller: function(){  var vm = this},controllerAs: 'ctrl'此时,controller已经作为对象字面量的形式而存在了,ctrl是它的实例,于是,我们可以在template中,以ctrl.XXXX的形式来调用被绑定到controller上的组件属性

这里附上具体的demo:

但如果需要在link函数的dom操作中用到这些绑定的属性,该怎么办呢?按照原来的做法,我们当然是使用scope.xxxx的形式来调用这些属性,但现在我们不用scope了,所以,我们要借助require选项,如下:

require:'这里是指令的名称'

接着,在link函数传入第四个参数ctrl,我们就可以使用这些属性了,再附上demo:

以上是我对bindToController的浅薄认识,恳请各位大神指出不足之处,谢谢

转载于:https://my.oschina.net/u/2342955/blog/605774

你可能感兴趣的文章
彻底卸载删除微软Win10易升方法
查看>>
移动磁盘提示使用驱动器中的光盘之前需要格式化,要如何找到数据
查看>>
Ajaxload动态加载动画生成工具的实现(ajaxload的本地移植)
查看>>
SWT/JFACE之环境配置(一)
查看>>
手把手构建LAMP
查看>>
关于outlook 保存的.msg文件打开一次之后不能再次打开的问题
查看>>
CentOS 6.6安装python3.4.3后yum不能使用的解决办法
查看>>
应用程序日志中总是说MS DTC无法正确处理DC 升级/降级事件,是什么意思
查看>>
毕业了,爱情怎么办?
查看>>
关于django一个请求的生命周期
查看>>
Supervisor-容器中启动多个程序
查看>>
CSS颜色代码大全
查看>>
我的友情链接
查看>>
mybatis数据处理的几种方式
查看>>
QStandardItem and QStandardItemModel Class Reference
查看>>
友情链接的作用
查看>>
我的友情链接
查看>>
使用Nginx搭建WEB服务器
查看>>
【oracle唯一主键SYS_GUID()】
查看>>
PyQt5 ImportError: DLL load failed: 找不到指定的模块
查看>>