我按照一些教程创建了 Angular Directive(指令)。在隔离作用域中,一些教程这样定义作用域:
scope: {
model: '=?',
data: '@?'
}
同时,一些教程定义范围时没有这样的问号:
scope: {
model: '=',
data: '@'
}
任何人都可以通过示例向我解释这些区别或目的吗?谢谢。
最佳答案
&
、@
和 =
符号用于定义绑定(bind)(单向、双向等)如您所知,隔离范围对象。 Here is a pretty thorough tutorial on how all this works .
?
符号用于指示独立作用域绑定(bind)所指的父作用域属性是可选。这意味着如果由于某种原因父范围属性不存在,那么您的应用程序将继续运行而不会抛出 NON_ASSIGNABLE_MODEL_EXPRESSION 异常。
关于javascript - 何时以及为何使用 &?、=?、@?在 AngularJS 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31589316/