何时以及为何使用 &?、=?、@?在 AngularJS?
When and why to use &?, =?, @? in AngularJS?
我按照一些教程创建了 angular 指令。在 isolate 作用域中,一些教程这样定义作用域:
scope: {
model: '=?',
data: '@?'
}
同时,有些教程定义的范围没有问号,如下所示:
scope: {
model: '=',
data: '@'
}
任何人都可以通过示例向我解释这些区别或目的吗?谢谢。
&
、@
和 =
符号用于定义独立范围对象的绑定(单向、双向等),正如您已经知道。 Here is a pretty thorough tutorial on how all this works.
?
符号用于表示隔离作用域绑定所指的父作用域属性是可选。这意味着如果由于某种原因父范围 属性 不存在,那么您的应用程序将继续 运行 而不会抛出 NON_ASSIGNABLE_MODEL_EXPRESSION 异常。
我按照一些教程创建了 angular 指令。在 isolate 作用域中,一些教程这样定义作用域:
scope: {
model: '=?',
data: '@?'
}
同时,有些教程定义的范围没有问号,如下所示:
scope: {
model: '=',
data: '@'
}
任何人都可以通过示例向我解释这些区别或目的吗?谢谢。
&
、@
和 =
符号用于定义独立范围对象的绑定(单向、双向等),正如您已经知道。 Here is a pretty thorough tutorial on how all this works.
?
符号用于表示隔离作用域绑定所指的父作用域属性是可选。这意味着如果由于某种原因父范围 属性 不存在,那么您的应用程序将继续 运行 而不会抛出 NON_ASSIGNABLE_MODEL_EXPRESSION 异常。