jquery - angular.element 与 document.getElementById 或带有旋转(忙碌)控制的 jQuery 选择器

标签 jquery angularjs

我使用的是 Spin 控件的“Angularised”版本,如此处所述:http://blog.xvitcoder.com/adding-a-weel-progress-indicator-to-your-angularjs-application/

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

我正在为 angular.element 给我们的和相同元素 id 上的 document.getElementById 给我们的东西而苦苦挣扎。 例如。这有效:

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

这些都没有:

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

我显然在做一些明显错误的事情!谁能帮忙?

假设我可以使上述工作正常进行,我在尝试替换对元素的 jQuery 访问时遇到了类似的问题: 例如$(target).fadeIn('fast');作品 angular.element('#appBusyIndicator').fadeIn('fast')angular.element('appBusyIndicator').fadeIn('fast')没有

有人能给我指出一个很好的文档示例,说明 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​​ejQuery 对象中获取元素,具体取决于 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 .

关于jquery - angular.element 与 document.getElementById 或带有旋转(忙碌)控制的 jQuery 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17230242/

相关文章:

javascript - jquery 或 javascript 中的对象

javascript - ui-sref 不适用于 ionicview,但适用于浏览器、设备和模拟器

javascript - Angular UI 多个弹出窗口,提交后以编程方式关闭单个弹出窗口

javascript - 从 ng-resource head 请求访问响应头

javascript - Controller 中的设置值有效,但 Angular 表达式中的设置值不起作用?

javascript - 在移动 Safari 中更好/更快地滚动?

jquery - 查找所有下一个输入字段

javascript - 如何链接这两个对象(图像映射形状和复选框)?

javascript - 调整大小后刷新 Skrollr

javascript - 悬停时更改图像颜色的替代方法(过滤器不起作用)