任何人都可以解释从范围访问指令属性之间的区别是什么,例如:
scope: { someVar: '=' }
与
link: function (scope, elem, attr, ctrl) {
attr.someVar
}
似乎两者都完成了同一件事。
=或= 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] 删除。
我来说两句