何时以及为何使用&?,=?,@?在AngularJS?

问题描述 投票:8回答:1

我按照一些教程创建了角度指令。在隔离范围中,一些教程定义了这样的范围:

scope: {
  model: '=?',
  data:  '@?' 
}

同时,一些教程定义了没有问号的范围,如下所示:

scope: {
  model: '=',
  data:  '@'
}

任何人都能用例子向我解释这些差异或目的吗?谢谢。

javascript angularjs angular-directive
1个回答
8
投票

正如您所知,&@=符号用于定义隔离范围对象的绑定(单向,双向等)。 Here is a pretty thorough tutorial on how all this works

?符号用于指示隔离范围绑定所引用的父范围属性是可选的。这意味着如果由于某种原因父作用域属性不存在,那么您的应用程序将继续运行而不会抛出NON_ASSIGNABLE_MODEL_EXPRESSION异常。

© www.soinside.com 2019 - 2024. All rights reserved.