何时以及为何使用 &?、=?、@?在 AngularJS 中?
Posted
技术标签:
【中文标题】何时以及为何使用 &?、=?、@?在 AngularJS 中?【英文标题】:When and why to use &?, =?, @? in AngularJS? 【发布时间】:2015-10-13 20:58:39 【问题描述】:我按照一些教程来创建角度指令。在隔离作用域中,一些教程定义的作用域是这样的:
scope:
model: '=?',
data: '@?'
同时,一些教程定义了没有问号的范围,如下所示:
scope:
model: '=',
data: '@'
谁能用例子解释一下这些的区别或目的?谢谢。
【问题讨论】:
【参考方案1】:如您所知,&
、@
和 =
符号用于定义隔离作用域对象的绑定(单向、双向等)。 Here is a pretty thorough tutorial on how all this works.
?
符号用于表示独立作用域绑定所引用的父作用域属性是可选。这意味着如果由于某种原因父范围属性不存在,那么您的应用程序将继续运行而不会引发 NON_ASSIGNABLE_MODEL_EXPRESSION 异常。
【讨论】:
我理解 &、@ 和 = 之间的区别,您对可选的解释很有意义。您能否提供一个孤立范围具有可选属性的示例并解释为什么是选项? 当然,here is a plunkr showing the functionality without the optional flag. 要查看它与可选标志的行为方式,添加它,您会看到它只是返回 404 而不是抛出异常。以上是关于何时以及为何使用 &?、=?、@?在 AngularJS 中?的主要内容,如果未能解决你的问题,请参考以下文章