Angular Isolate scope 的 & Binding 返回 getter 函数而不是 value
angular isolate scope's & binding returns getter function instead of value
在隔离作用域内,我有以下绑定:
scope: {
languages: "&",
}
该值在 DOM 中像这样传递:
<directive-name languages="['1', '2']">
然后,当我尝试访问languages
属性时scope.languages
返回 getter 函数,就像 $parse
服务仅使用预定义上下文返回的函数一样。因此,虽然我可以轻松获得这样的绑定值
var languages = scope.languages()
我仍然想确保这确实是预期的行为。那么&
绑定是否应该返回预定义的上下文获取函数而不是实际值?
是的,这就是使用"&"的全部目的。
从角度文档:
&or &attr - 提供了一种在上下文中执行表达式的方法 父范围。如果未指定属性名称,则属性名称 假定与本地名称相同。给定和小部件的范围定义:{ localFn:'&myAttr' },然后隔离范围属性 localFn 将指向 计数 = 计数 + 值表达式的函数包装器。经常 希望通过表达式从隔离范围传递数据 到父范围,这可以通过传递本地映射来完成 变量名称和值到表达式包装器 FN 中。例如 如果表达式是增量(金额),那么我们可以指定金额 通过将 localFn 调用为 localFn({amount: 22}) 来的值。
更多信息: AngularJS Docs
但是,如果您只想将该数组传递给您的指令,您需要做的就是评估该属性:
在您的指令中:
scope.languages = scope.$eval(attrs.languages); //This should assign the array ['1', '2'] to your scope property.
相关文章:
- 传递参数时如何避免模块模式中的 getter/setter 函数
- 使用特权Getter/Setter函数的JavaScript原型函数
- 调用Typescript setter don't返回函数,尽管关联的getter可以工作
- 使用getter和setter实现函数链接的方法
- 为什么要重置文档getter函数
- 函数的 setter/Getter 在调用函数时将函数转换为字符串
- 如何定义一个构造函数,该函数使用 getter 和 setter 创建对象
- Angular Isolate scope 的 & Binding 返回 getter 函数而不是 value
- JavaScript从函数中调用getter
- 来自defineProperty的Getter函数没有't返回选择器
- OOP getter函数应该返回私有属性的值或引用
- 使用Getter函数暴露Angular服务中的对象,返回undefined
- 对象getter/setter与新构造函数的比较-测试结果
- 在Javascript代码中共享getter/setter函数
- 作为类的函数-为私有属性创建getter和setter
- 我不能直接访问对象中的字段,也不能使用getter函数访问
- 对象.在构造函数中赋值getter和setter
- 构造函数、getter和setter方法中的Object.defineProperty
- 当getter返回一个函数时,Firefox中的意外行为
- JavaScript getter定义为数组而不是函数