'=?'是什么意思?在angularJS指令中隔离范围声明?

时间:2013-12-07 23:02:42

标签: angularjs angularjs-directive

等于之后的问号是否有特殊含义?即:

scope: {foo: '=?'}

上述意思是'如果'foo'无法解决,不会引发错误吗?

1 个答案:

答案 0 :(得分:150)

Yes:

  

'isolate'范围采用对象哈希,该哈希定义从父范围派生的一组局部范围属性。这些本地属性对于模板的别名值很有用。 Locals定义是本地范围属性的哈希值:

     

==attr - 在本地范围之间设置双向绑定   属性和通过值定义的name的父范围属性   attr属性的。{如果没有指定attr名称,那么   假定属性名称与本地名称相同。特定   <widget my-attr="parentModel">的{​​{1}}和小部件定义,然后小部件范围属性scope: { localModel:'=myAttr' }将   反映父范围localModel的值。任何改变   parentModel会反映在parentModel及其中的任何变化中   localModel将反映在localModel中。 如果是父范围   财产不存在,它会抛出一个   NON_ASSIGNABLE_MODEL_EXPRESSION异常。您可以避免此行为   使用parentModel=?将该属性标记为可选。

它应该触发影响范围属性的每个摘要的预期错误:

=?attr