参考博客。很详细
https://www.cnblogs.com/wangmeijian/p/4944030.html
https://www.cnblogs.com/anhaiming/p/5002077.html
关于scope的一些坑
当遇到scope的自定义作用域时
比如下面这样:
scope: {
myName: "@",
mySex: "=mySex1",
getName: "&"
}
这里要特别注意一下:
碰到这种一般会出现三种变量,分别是指令里面出现的,上面scope里面出现的,模板里面出现的。
指令里面出现的: 比如说my-name my-sex1 get-name
<my-directive my-name="name" my-sex1="sex" get-name='say()'></my-directive>
模板里面出现的:
template: "<input type='text' ng-model='myName' /><br/>"+
"<input type='text' ng-model='mySex' /><br/>"+
"<input type='button' ng-click='getName()' value='点击执行子域的say方法' />",
scope里面出现:
scope: {
myName: "@",
mySex: "=mySex1",
getName: "&"
},
特别注意:scope就相当于中转站,当scope里面的属性值相等的时候,可以省略直接写@或者=或者& ,如果不相等就必须写全。比如第二个就是不相等。
到底是什么样的对应关系呢????
@之类的符号后面的值对应的是指令里面的属性。比如说上面指令的my-sex1
mySex 指的是模板里面的值。
------》最终还是从指令里面的值经过scope中转传到模板里面!!!!!