我按照一些教程来创建角度指令。在隔离范围中,一些教程定义了这样的范围:
scope: {
model: '=?',
data: '@?'
}
同时,一些教程定义了没有问号的范围,如下所示:
scope: {
model: '=',
data: '@'
}
有人可以用例子向我解释这些的区别或目的吗?谢谢。
答案 0 :(得分:8)
正如您所知,&
,@
和=
符号用于定义隔离范围对象的绑定(单向,双向等)。 Here is a pretty thorough tutorial on how all this works
?
符号用于指示隔离范围绑定所引用的父范围属性是可选。这意味着如果由于某种原因父作用域属性不存在,那么您的应用程序将继续运行而不会抛出NON_ASSIGNABLE_MODEL_EXPRESSION异常。