AngularJS:如何通过id获取DOM元素

Spi*_*kee 4 javascript css dom angularjs

样品

请考虑一下Plunkr.

我需要的

我需要能够通过它的id得到一个元素.

示例代码应该能够将css类分配给当前视图中存在的任何DOM元素.

应使用源对象检查,该对象由控制器中的$ scope提供.此源对象可能/将具有比视图上的输入元素更多的属性.

所以我想遍历每个对象键,看看是否存在相应的DOM元素.如果是这样,请验证它的价值.

这个问题

我如何通过id获取元素,仅使用AngularJS(不允许使用jQuery !!)?

特别是对于Plunkr,我需要这个功能(真的)工作:

self.IsFieldCurrentlyActive = function(field){
  // Should be (in pseudocode):
  // var inputElement = angular.find(field);
  // return (inputElement != 'undefined');

  // Sample only
  var idx = field.indexOf('Unused');
  return idx == -1;
};
Run Code Online (Sandbox Code Playgroud)

而这一个(基本相同):

self.GetElementByKey = function(key)
{
  // Should be (in pseudocode):
  // var inputElement = angular.find(field);
  // return inputElement;

  // Sample only
  return null;
}
Run Code Online (Sandbox Code Playgroud)

更新

道歉,我忘了添加一个重要的要求:我不能使用任何假定唯一ID的机制,因为可能会出现多次相同形式(以及相同的ID).所以,我需要尊重Angular范围.

谢谢!

Lau*_*ine 11

在纯JS中你可以做到 document.querySelector('#myID');

或使用angular.element在角度内: angular.element(document.querySelector('#myID'));

  • Id应该是唯一的.http://www.w3.org/TR/2014/REC-html5-20141028/dom.html#the-id-attribute (3认同)

Nis*_*edi 1

相反尝试angular.element($('#myElement'));