javascript - 何时以及为何使用 &?、=?、@?在 AngularJS 中?

标签 javascript angularjs angular-directive

我按照一些教程创建了 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/

相关文章:

javascript - 防止透明div内的图像透明

Javascript函数无法触发onclick

php - PHP中的http_response_code()

angularjs - 使用 $validators 单元测试 Angular 表单验证

angularjs - 在 React 中使用自定义 Angular 指令

angularjs - Angular.js 将参数传递给指令

angular - angular2 中是否有 ng-disabled 的替代方案?

javascript - 如何使用 Javascript 动态添加复选框

javascript - 如何在代码中添加 `0`这种条件?

javascript - 如果它是 Angular 中的 json 字符串,如何访问 Json 对象元素值