【发布时间】:2013-01-23 08:57:12
【问题描述】:
从 Directives 文档中它说以这两种方式继承范围:
@ 或 @attr - 将本地范围属性绑定到 DOM 的值 属性。结果总是一个字符串,因为 DOM 属性是 字符串。如果未指定 attr 名称,则属性名称为 假定与本地名称相同。范围的给定和小部件定义:{ localName:'@myAttr'}, 然后小部件范围属性 localName 将反映插值 你好 {{name}} 的值。随着名称属性的变化, 小部件范围上的 localName 属性。该名称是从 父范围(不是组件范围)。
= 或 =attr - 在本地范围属性和通过值定义的名称的父范围属性之间设置双向绑定 attr 属性。如果未指定 attr 名称,则属性 假定名称与本地名称相同。范围的给定和小部件定义:{ localModel:'=myAttr' },然后小部件范围属性 localModel 将 在父作用域上反映 parentModel 的值。任何更改 parentModel 将反映在 localModel 和任何更改 localModel 将反映在 parentModel 中。
考虑到我要传递elementId,它只是一个id,我可以通过=elementId或@elementId传递。
现在这两者中的哪一个被认为是最佳实践?如果我使用 @ 和属性,它会从 DOM 中获取值,这比直接获取值要慢?
我说的对吗?有什么建议吗?
【问题讨论】:
标签: javascript angularjs