【问题标题】:When and why to use &?, =?, @? in AngularJS?何时以及为何使用 &?、=?、@?在 AngularJS 中?
【发布时间】:2015-10-13 20:58:39
【问题描述】:

我按照一些教程来创建角度指令。在隔离作用域中,一些教程定义的作用域是这样的:

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

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

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

谁能用例子解释一下这些的区别或目的?谢谢。

【问题讨论】:

    标签: javascript angularjs angular-directive


    【解决方案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 而不是抛出异常。
    猜你喜欢
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-22
    • 1970-01-01
    • 2013-03-16
    相关资源
    最近更新 更多