当前位置: 首页 > 面试题库 >

在Angular完成加载所有视图之后运行Javascript

何灼光
2023-03-14
问题内容

我正在使用Angular构建Web应用程序,并且试图找到一种方法来等待所有data-ng- include元素都经过评估并且包括完成加载。例如,菜单是一个已加载的视图,每个页面的主要内容也是如此,因此至少有两个data-ng- includes被评估并加载。最重要的是菜单包含嵌套data-ng- repeats,它们构成了我的菜单。在所有这些包含项以及其中的所有角度函数均已加载并且DOM已准备就绪之后,我需要一种启动脚本的方法。

Angular完成页面设置后,是否会触发任何事件?

AnguarJS的实现是基本的,我们基本上是通过使用data-ng-
include将其用于模板。每个页面都是一个视图(不是角度视图,只是一个html文件),是通过data-ng-
include加载的,页眉和页脚位于其上方和下方。标头还动态加载包含角度的全局视图(同样不是角度视图)html文件

到目前为止,菜单是使用AngularJS进行模板以外的唯一工作。它使用它来创建菜单,该菜单使用由JSP动态生成并插入到从服务器返回的DOM中的JSON对象。

为了使前端人员的工作更轻松,任何重复的JavaScript功能都被编码到模块中,这些模块会在页面加载时进行检测,并使用需要附加JavaScript功能的元素上的data-
features属性动态加载至。

例如,您可能有<div id="mySubMenu" data- features="subMenu"></div>。在页面加载时,将检测到每个具有data-
features元素的元素,并加载关联的JS模块,在这种情况下,我们将加载/scripts/modules/subMenu.js

我需要的是一种延迟运行此功能检测和附加功能的方法,直到由包含或其他角度函数产生的所有元素都在页面上并准备好进行操作为止,尤其是因为那些元素中可能包含具有数据功能属性的元素包含。

其他人曾提到将控制器放在身体上,而没有将身体的一侧放进去,但:

$scope.$on('$viewContentLoaded', function() {
    // Init Features Here
});

那没有用,所以我在这里寻找其他选择。


问题答案:

我认为适当的答案是“否”。您必须更改查看应用程序和模型的方式,并使其适应“角度方式”。很可能有一种更健康的方式来实现您所需要的。如果您需要将事件附加到元素上,则可能要使用指令,但是我目前没有足够的信息来判断什么是最佳方法。

与指令一起使用angular.module是一个不错的选择。

这是一个关于如何与JQUERY插件一起使用的简单演示:

http://plnkr.co/edit/WGdNEM?p=preview

这是一个在单独文件上带有指令的示例:

http://plnkr.co/edit/YNBSWPLeWqsfGvOTwsMB?p=preview



 类似资料:
  • 问题内容: 我遇到了一个问题,其中发生了多个异步请求,这些请求从Facebook API和Firebase数据库获取图像和信息。我想执行所有异步请求,然后将从Facebook API / Firebase数据库获取的所有数据存储到一个可以快速加载的完整对象中。我为每个异步请求设置了完成处理程序,我认为这会迫使程序“等待”直到请求完成,然后继续执行程序,但这似乎对我不起作用。以下是我的尝试: 我知道

  • 问题内容: 在与此问题相关的帖子中,我没有找到相关且最新的答案。 我想在启动时加载所有ViewController。目前,它按预期启动,但是当我点击一个栏项目(第一次)时,由于尚未加载,因此加载时间略有延迟。 我该怎么做是Swift? 谢谢。 问题答案: 要预加载的视图,只需访问其属性: 要将所有视图控制器预加载到,您可以执行以下操作: 或者更紧凑一些:

  • 问题内容: 什么是检测html加载结束的最佳方法?我想编写一些在加载完成后运行的代码。 问题答案: 有两种方法可以检测何时完成加载,具体取决于您的需要: 1)通过属性- 用于内联表达式。例如: 2)通过事件的是发射-为应用范围的处理。例如: 完成内容加载后

  • 我正在使用与Salim在这里发布的内容类似的实现使用Selenium测试AngularJS 然而,当运行时,检查将系统性地等待“webdriver等待”期。 据我所知,无论发生什么,布尔检查总是返回false。 有人有什么想法吗? 我试图缩短等待的超时值以及更改池速率,但所做的只是使用这些新值,而不是真正“返回true”检查。 预期:只要Angular没有任何挂起的http\U请求,等待就会结束

  • 问题内容: 因此,我一直在尝试Gulp,看看它在速度上与Grunt相比如何,我对结果印象深刻,但是我有一件事我不知道如何在Gulp中进行。 因此,我有这个任务来缩小HTML: buildMetaData对象具有我需要的自定义功能,以及为什么不能使用像gulp- changed这样的插件。我要弄清楚的是,在缩小完成后如何(如果可能)运行代码块来处理所有文件并成功运行。gulp有可能发生这种情况吗?

  • 问题内容: 您可以在android的所有内容之上叠加视图吗? 在iPhone中,我将新视图设置为(0,0)并将其宽度和高度设置为的宽度和高度。如果将其添加到,则将使其充当覆盖层,覆盖后面的内容(或者如果它具有透明背景,则显示后面的视图)。 android中有类似的技术吗?我意识到视图略有不同(相对布局,线性布局和框架布局有三种(或更多类型),但是有什么方法可以不加选择地将视图叠加在所有内容之上吗?