【问题标题】:Run jQuery after Angular is done loading在 Angular 完成加载后运行 jQuery
【发布时间】:2014-09-27 13:07:11
【问题描述】:

我正在编写一些代码来稍微修改现有网站。

现有网站是使用 Angular 构建的。我的代码使用的是 jQuery,但我可以使用任何 JavaScript。

但是,我无法更改现有网站。我无法更改现有的 Angular 脚本。我可以更改我的一个外部脚本文件,即站点上的 src。我的代码在加载 Angular 脚本和 jQuery 脚本后运行。

如何在 Angular 完成 DOM 渲染后运行我的 jQuery 代码?

$(document).ready() 提前触发。

我从未使用过 Angular,但在网上阅读,它似乎应该发出 $viewContentLoading 事件,但我无法在我的脚本中捕获此事件。

谢谢,

【问题讨论】:

  • 我不明白你的问题。你能告诉我你的代码吗?
  • @user256103 我没有任何代码。我试图找到一个代码示例,它允许在 Angular 完成渲染 DOM 后运行 jQuery 代码。谢谢

标签: javascript jquery html angularjs


【解决方案1】:

你是对的。在尝试运行任何 jQuery 之前,您需要等待 DOM 加载!

简单但不安全的方法是在 angualrjs 中使用$timeoutSee the doc here.

$timeout(function() {
    //your jQuery code here
}, 50);

这是告诉 angualrJs 等待 50 毫秒,然后执行函数内部的任何内容。 50 毫秒应该足够了 - 但如果您的页面加载缓慢,您可能需要增加它。

有更好的办法!

您应该查看directives 以避免使用 jQuery。

【讨论】:

  • 我考虑过超时,但这似乎真的很乱。
  • 我考虑过超时,但这看起来真的很乱。同样,我无法添加到现有的 Angular 文件中。我尝试添加指令,但它不起作用。我尝试了几种变体,但似乎都不起作用......你有没有机会帮助完成这项工作?谢谢! jsfiddle.net/6gdfx29x/2
  • 另外,我正在尝试让超时工作,但我什至无法完成这项工作:jsfiddle.net/xavsrmL7
猜你喜欢
  • 2014-03-08
  • 1970-01-01
  • 1970-01-01
  • 2016-06-14
  • 2011-07-25
  • 2014-04-25
  • 1970-01-01
  • 2019-03-09
  • 1970-01-01
相关资源
最近更新 更多