angular.element vs document.getElementById或jQuery选择器与spin(忙)控制

前端之家收集整理的这篇文章主要介绍了angular.element vs document.getElementById或jQuery选择器与spin(忙)控制前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用“Angularised”版本的Spin控件,如下所示: http://blog.xvitcoder.com/adding-a-weel-progress-indicator-to-your-angularjs-application/

我不喜欢显示解决方案的一个事情是在服务中使用jQuery有效地将旋转控件附加到DOM元素。我更喜欢使用角度构造来访问元素。我也想避免“硬编码”旋转器需要附加到服务内的元素的id,而是使用在服务(单例)中设置id的指令,以便服务的其他用户或服务本身不需要知道。

我正在努力与angular.element给我们什么document.getElementById在同一个元素id给我们。
例如。这工作:

var target = document.getElementById('appBusyIndicator');

这些都不:

var target = angular.element('#appBusyIndicator');
  var target = angular.element('appBusyIndicator');

我显然做了一些应该是相当明显的错误!任何人可以帮助?

假设我可以得到上面的工作,我有一个类似的问题,试图替换jQuery访问的元素:
例如$(target).fadeIn(‘fast’);作品
angular.element(‘#appBusyIndi​​cator’)。fadeIn(‘fast’)or angular.element(‘appBusyIndi​​cator’)。fadeIn(‘fast’)does not

有人可以指点一个很好的例子,说明一个Angular“元素”与DOM元素的使用? Angular显然用自己的属性方法等“包装”元素,但通常很难得到原始值。例如,如果我有一个< input type ='number'>字段,并且我想访问在用户键入“ – ”(没有引号)时在ui中可见的原始内容我没有什么,可能是因为“type = number”意味着Angular拒绝输入,即使它是可见的在UI中,我想看到它,所以我可以测试它,并清除它下来。

任何指针/答案赞赏。

谢谢。

它可以这样工作:
var myElement = angular.element( document.querySelector( '#some-id' ) );

你将Document.querySelector() native Javascript调用包装到angular.element()调用中。所以你总是获得一个jqLit​​e或jQuery对象中的元素,取决于jQuery是否可用/加载。

Official documentation for angular.element:

If jQuery is available,angular.element is an alias for the jQuery function. If jQuery is not available,angular.element delegates to Angulars built-in subset of jQuery,that called “jQuery lite” or jqLite.

All element references in Angular are always wrapped with jQuery or jqLite (such as the element argument in a directives compile or link function). They are never raw DOM references.

如果你想知道为什么要使用document.querySelector(),请阅读this answer

猜你在找的Angularjs相关文章