指令中 Scope的三种情况 - fanghm/angularjs_notes GitHub Wiki

指令中的 Scope,有三种情况:

  • scope: false —— 定义指令 .directive() 时的默认设置,此时不会创建子 Scope,将会直接共享父 Scope,所以说没有理解的时候就可能出现莫名其妙改变了上一层 Scope 当中某个值的情况。
  • scope: { ... } —— 创建新的「独立」 Scope,但是不会继承父 Scope,当需要传入某些值的时候,只需要在花括号当中写入该变量名称以及绑定方式即可。1.5 新版本增加了单向绑定,所以共有四种方式:’@’、’<’、’=’、’&’,而这在 .component()创建组件的时候是默认的,Scope 永远都是隔离的,通过绑定 变量/方法 的方式定义组件的输入输出。
  • scope: true —— 创建新的「独立」 Scope 并且继承自父 Scope,所以说能够在 Directive 当中访问到所有父 Scope 当中的值。