如何以及在哪里app.run()使用?模块定义后,之后app.config()还是之后app.controller()?
我正在采用BreezeJS Angular Q,它询问是否可以在app.run()函数中运行某些代码.
我有一个函数,我想在加载页面内容后调用.我读到了$ viewContentLoaded,它对我不起作用.我正在寻找类似的东西
document.addEventListener('DOMContentLoaded', function () {
//Content goes here
}, false);
Run Code Online (Sandbox Code Playgroud)
以上调用在AngularJs控制器中对我不起作用.
我正在使用Angular构建一个Web应用程序,我正在尝试找到一种方法来等待所有data-ng-include元素都已经过评估并且包含完成加载.例如,菜单是一个加载的视图,每个页面的主要内容也是如此,因此至少有两个data-ng-include被评估和加载的s.最重要的是,菜单包含嵌套的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
});
Run Code Online (Sandbox Code Playgroud)
这没用,所以我在这里寻找其他选择.
我最终在这个问题中使用了Theo的解决方案:当angular.js完成加载时发送事件
我正在尝试使用HMTL加载一个放在单独的html中的组件.问题是,只要在浏览器中加载页面就会调用它.
以下是我的模态代码:
<div class="modal fade borderColorC0C0C0 borderRadiusOverride" id="termsAndConditionsPopover" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="false" ng-include="'components/popover/termsAndConditions/termsAndConditions.html'">
</div>
Run Code Online (Sandbox Code Playgroud)
组件代码在这里:
termsAndConditions.html
<div class="modal-dialog borderRadiusOverride">
<div class="modal-content borderRadiusOverride">
<div class="termsAndConditionsHeaderColor borderRadiusOverride divHeight50 paddingTop15 paddingLeft15 paddingBottom15 borderBottomColorC0C0C0">
<!--<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>-->
<h5 class="modal-title marginBottom15 fontColorTileSteps" id="myModalLabel">Cisco's GSA shipping Policy</h5>
</div>
<div class="modal-body borderRadiusOverride fontColorTileSteps">
This policy outlines the requirements of shipping Internationally including but not limited to:
<ul>
<li>All members of the Cisco workforce are responsible to adhere to this policy</li>
<li>AST is …Run Code Online (Sandbox Code Playgroud) javascript jquery document-ready angularjs angularjs-ng-include
我正在研究一个小的Greasemonkey脚本,以加速用angularJS编写的供应商工具中的某些进程.
我似乎面临的问题是,当脚本运行时,元素不在DOM中:
$(document).ready(function() {
var pwEl = $("input:password").val(chance.word({length: 8});
};
Run Code Online (Sandbox Code Playgroud)
失败,因为(document).ready()运行时输入字段似乎不存在.有一些资源似乎证实了这一点.
有没有办法在运行脚本之前等待Angular完成?我找到了使用的参考:
angular.element(document).ready(function() {
console.log("Hi from angular element ready");
});
Run Code Online (Sandbox Code Playgroud)
但是,这似乎永远不会执行.
我真的很新角(我只用几个简短教程发挥各地).任何方向表示赞赏.
谢谢!