angularjs的作用域 @&=

作者: 杨杨1314 | 来源:发表于2017-03-01 17:39 被阅读27次

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

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

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

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

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

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

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

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

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

    这是指令directive内容

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

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

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

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

    这个是自定义元素里面定义的 这个就是controller里面的,就相当于数据库去出来的内容 这个就是自定义的组件里面,我要显示的

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

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

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

    相关文章

      网友评论

      本文标题:angularjs的作用域 @&=

      本文链接:https://www.haomeiwen.com/subject/qyccgttx.html