AngularJS:'=?'的用法是什么?在角度指令范围

时间:2016-01-06 08:03:36

标签: angularjs angularjs-directive

我见过开发人员使用'=?'在指令的角度范围内。有人可以解释一下它的用法。

1 个答案:

答案 0 :(得分:2)

  

==attr - 在本地范围属性和通过attr属性的值定义的name的父范围属性之间设置双向绑定。如果未指定attr名称,则假定属性名称与本地名称相同。给定<widget my-attr="parentModel">scope: { localModel:'=myAttr' }的窗口小部件定义,窗口小部件范围属性localModel将反映父范围上parentModel的值。对parentModel的任何更改都将反映在localModel中,localModel中的所有更改都会反映在parentModel中。如果父作用域属性不存在,则会抛出 NON_ASSIGNABLE_MODEL_EXPRESSION 异常。您可以使用=?=?attr来避免此行为,以便将该属性标记为可选。如果您想要了解更改(例如$ watchCollection而不是$ watch),您可以使用=*=*attr=*?=*?attr(如果属性是可选的)。

Source (CTRL + F,&#34; =?&#34;)