AngularJs通过链接和作用域访问属性差异

任何人都可以解释从范围访问指令属性之间的区别是什么,例如:

scope: { someVar: '=' }

link: function (scope, elem, attr, ctrl) {
  attr.someVar
}

似乎两者都完成了同一件事。

杰林森

AngularJS ng。$ compile docs

=或= attr-在本地范围属性和通过attr属性的值定义的名称的父范围属性之间建立双向绑定...对parentModel的任何更改都将反映在localModel中,而在localModel中的任何更改都将反映在parentModel中。

换句话说,这会在属性上创建一个监视,从而导致对父作用域或指令作用域中的模型所做的更改都反映在另一个属性中。

引用该属性仅返回一个字符串。因此,如果您有一个指令,foo并且您的HTML看起来像

<foo some-var="bar"></foo>

在您的链接函数中,attr.someVar将是字符串literal "bar"您可以随时bar通过调用scope.$eval(attr.someVar)(或scope.$parent.$eval(attr.someVar)如果该指令具有隔离范围)在范围内求值,但您无法完成此操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

AngularJS从子控制器访问父作用域

如何从Chrome扩展名访问angularjs根作用域

链接是什么:函数“参数”(作用域,元素,属性)?AngularJS

如何通过值类型为uuid的属性隔离作用域

AngularJS $ compile评估作用域属性而不是绑定

AngularJS如何从指令访问Controller作用域

missing()和is.null()之间的作用域差异

角链接功能:$作用域与作用域

如何在没有双向绑定的情况下通过隔离作用域访问对象属性?

无法访问父控制器作用域(AngularJS)

Javascript函数关闭和对父作用域的访问

链接器函数的作用域在angularjs指令中表示什么

通过FOR和IF循环了解变量作用域

通过this和ObjectName访问对象属性

AngularJS:在链接方法中添加到指令的作用域

AngularJS指令访问相同的作用域对象-避免覆盖

AngularJS:如何访问部分或局部作用域方法?

AngularJS:如何在不通过多个$ parent进行导航的情况下访问最高级的作用域?

Javascript函数作用域差异

访问指令内部的作用域属性

在AngularJS中访问作用域变量

AngularJS:在$ routeProvider中访问作用域变量

通过独立作用域进行基于AngularJS事件的通信

AngularJS指令,ControllerAs,作用域和vm属性

在Angular中的链接函数中访问作用域

angularjs-调用链接函数时作用域属性尚不可用

angularjs控制器访问指令作用域值

AngularJs 1.6 - 在指令“链接”函数中无法访问父作用域

Python 中类和函数作用域之间的行为差异