继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

angularjs的作用域 @&=

MMTTMM
关注TA
已关注
手记 456
粉丝 65
获赞 364

       从16年年底就在学习ng,但是一直对它的作用域@&=模糊不清,查资料也深感晦涩。直到今天写项目,这几天写下来,才渐渐的对其有所了解。

首先,这是我自己做的一个组件,是一个文本框的组件,如下:

700

来解释一下这个组件,有五个参数,分别是ljl,ljt,ljtip,ljd,ljf。这几个参数均可自行设置值。

ljl是用来控制文本框的最大输入字数。

ljt是用来显示文本框里面的文字,一般是从数据库去出来,显示在这里面。

ljtip是用来设置文本框的错误提示信息。

ljd是用来控制错误提示信息是否让他显示,true /false。

ljf是文本框的事件,这个我给了一个ng-blur。

其次,重点就来了,下面就重点介绍一下@&=这几个作用域的含义:

700

这是指令directive内容

这就是我的自定义指令,写在scope里面。那么我的理解就是:

1:ljl:"@": 这个作用域相当于ng-model,但是为什么用@呢?我的理解是它在自定义元素里面给死了值,拿着这个model(ng-model)就可以在具体的组件里面显示了,而在controller里面是不能进行重复定义的,例如:

130

这个是自定义元素里面定义的

346

这个就是我自己写的组件,在组件里就可以直接用,300就会直接显示

2:ljt:"=": 这个作用域也是相当于ng-model,同样的问题,为什么用=呢?我的理解是:这个ljt是我定义的文本框内容,上面说到了,有可能是数据库取出来的,那么,从哪里取的呢?肯定是数据库了。所以,controller便是页面和后台相互交互的一个桥梁。所以,这个ljt肯定是在controller里面定义的全局变量,然后在组件里去用它,例如:

158

这个是自定义元素里面定义的

535

这个就是controller里面的,就相当于数据库去出来的内容

416

这个就是自定义的组件里面,我要显示的

3:ljf:"&":这个作用域也相当于ng-model;但是为啥要用它呢?前面说了,我给这个文本框一个ng-blur事件,所以,不用解释,这个&符就是用于绑定方法的了,例如:

169

这个是自定义元素里面定义的


501

这个就是a1s自定义的方法

178

这个就是自定义组件里面的绑定方法

到此为止,我对作用域的这三个符号的理解就说完了。这也只是目前我对他们的认识。欢迎指正!



作者:杨立军
链接:https://www.jianshu.com/p/5e0ac9d6a24c


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP