scope 有三个参数 true、false、{}
scope 默认是 false,当 scope设置为true时,会从父作用域继承并创建一个新的作用域对象,
按照true 、false的反向思维,我就理解为scope不设置,或者设置为false的时候,就不从父作用域继承(理解错误主要就是因为这句话)。
这里的不从父作用域继承可以分为两种情况
1、创建一个新的作用域对象,但不继承父作用域 (创建、不继承)
2、压根就不创建新的作用域对象,直接跟父作用域共享一个作用域,也就谈不到继承了。 (不创建、直接用、谈何继承)
弄清楚这个我就明白了,scope:false 和scope:true的本质区别是创不创建新的作用域对象,而不是继不继承的问题。
放几个例子,代码不多,直接写在一个里面了:
指令中的templateUrl共用一个模板:scopeTemplate.html
<p>我的名字是:{{ name }}</p> <!-- 常量 --> <p>我的年龄是:{{ age }}</p> <!-- 变量 --> <p><button ng-click="greeting()">称呼</button></p> <!-- 方法 --> <input type="text" ng-model="name" /> <br /><br />