当前位置: 首页 > 面试题库 >

“ =”是什么意思?在angularJS指令隔离范围声明?

阳光辉
2023-03-14
问题内容

等号后的问号有特殊含义吗?即:

scope: {foo: '=?'}

上面的意思是“无法解决’foo’时不会引发错误?”


问题答案:

是:

“隔离”范围采用对象散列,该对象散列定义了一组从父范围派生的局部范围属性。这些本地属性对于为模板的别名设置别名很有用。本地定义是本地范围属性与其源的哈希值:

==attr-在本地范围属性和通过attr属性值定义的名称的父范围属性之间建立双向绑定。如果未attr指定名称,则假定属性名称与本地名称相同。给定
<widget my-attr="parentModel">和的窗口小部件定义scope: { localModel:'=myAttr' },那么窗口小部件作用域属性localModel将反映parentModel父作用域上的值。对的任何更改
parentModel将反映在中localModel,对的任何更改 localModel将反映在中parentModel
如果父范围属性不存在,它将抛出NON_ASSIGNABLE_MODEL_EXPRESSION异常。
您可以使用=?=?attr将该属性标记为可选,从而避免出现这种情况。



它应该在影响范围属性的每个摘要上触发预期的错误:

parentSet = parentGet.assign || function() {
// reset the change, or we will throw this exception on every $digest
lastValue = scope[scopeName] = parentGet(parentScope);
     throw Error(NON_ASSIGNABLE_MODEL_EXPRESSION + attrs[attrName] +
     ' (directive: ' + newScopeDirective.name + ')');
};

//...


if (parentValue !== scope[scopeName]) {
    // we are out of sync and need to copy
    if (parentValue !== lastValue) {
        // parent changed and it has precedence
        lastValue = scope[scopeName] = parentValue;
    } else {
        // if the parent can be assigned then do so
        parentSet(parentScope, lastValue = scope[scopeName]);
    }
}


 类似资料:
  • 问题内容: 请在这里查看示例 角需要,,以在所述分离的范围对象从父范围访问它来限定。 在这里使用 那么,目的是什么?无法访问通过传递的所有属性。为什么不能将max的一个访问值代替 为什么要分配回来像? 由于此应用程序是由Angular作者编写的,因此我希望有一个理由。 谢谢。 问题答案: attrs的目的是什么? 在与指令相同的元素上定义的属性有几个用途: 它们是将信息传递到使用隔离范围的指令的唯

  • 那么,的目的是什么?不能访问通过传递的所有属性。为什么一个max的访问值不能作为而不是 为什么要像那样分配回来? 谢了。

  • 问题内容: AngularJS指令的默认作用域值是什么? 当然,它不是孤立的范围。这是对还是错。 我找不到有关它的任何文档。 问题答案: “请注意,默认情况下,伪指令不会创建新的作用域-即,默认值为” 从理解范围。 使用指令中的scope选项,您可以: 创建一个原型继承的子范围 创建一个独立的作用域,然后您可以将某些属性绑定到父作用域。 决定不创建新的作用域,并使用父级(默认)。

  • 我有3个经纪人Kafka设置。我正在更新“min.insync.replicas”属性,我查看了文档, min.insync.replicas 更新模式:群集范围 集群范围在这里指定什么-它是否可以,如果我更新属性在一个代理或它需要更新在所有的代理设置文件(server.properties) 如何更新集群范围属性使用kafka-config- 所有可在集群级别配置的配置也可以在每个代理级别配置(

  • 问题内容: 我看过这样的语法 那双冒号是做什么用的?如果将其删除会怎样? 问题答案: 用于一次性绑定。一旦稳定,即在第一个摘要之后,表达式将停止重新计算。 因此,对所做的任何更新将不可见。

  • 问题内容: 我想在没有自己的模板的AngularJS中创建可重用的指令。我也想为该指令设置隔离范围。我的方法的最佳做法是什么?为什么我的示例不符合我的预期? 我希望可以分别从指令中编辑obj1和obj2。 HTML: JS: PLUNKR:http://plnkr.co/edit/Dw8IiFVSOZGjSTFGRMzZ 问题答案: 您的代码现在的工作方式是,每个指令的内容都绑定到父作用域,而不是