我有一个看似简单的问题,没有明显的解决方案 (通过阅读Angular JS文档) 。
我有一个Angular JS指令,该指令根据其他DOM元素的高度进行一些计算,以定义DOM中容器的高度。
指令内部发生了类似的事情:
return function(scope, element, attrs) {
$('.main').height( $('.site-header').height() - $('.site-footer').height() );
}
问题是当指令运行时,$('site-header')
找不到它,返回一个空数组而不是我需要的jQuery包装的DOM元素。
我是否可以在指令中使用仅在加载DOM之后运行的回调,并且可以通过常规jQuery选择器样式查询访问其他DOM元素?
这取决于$(’site-header’)的构造方式。
您可以尝试使用$ timeout,延迟为0。就像是:
return function(scope, element, attrs) {
$timeout(function(){
$('.main').height( $('.site-header').height() - $('.site-footer').height() );
});
}
解释其工作方式:一,二。
不要忘记$timeout
在指令中添加:
.directive('sticky', function($timeout)
问题内容: 渲染模板后如何运行方法?我要设置和之后,我需要使用JQuery进行更改(例如,在模板内容的DOM中)。正在“之前”渲染工作(模板的DOM尚不可用)。谢谢。 问题答案: 创建在链接函数中运行代码的指令。构建模板后,将调用链接功能。 请参阅ng-click以获取想法。
本文向大家介绍详解angular中如何监控dom渲染完毕,包括了详解angular中如何监控dom渲染完毕的使用技巧和注意事项,需要的朋友参考一下 刚刚看到群上一个人说,他们公司凡是用angular和jquery插件一起用的人,都被解雇了,没看到这句话之前我很惭愧的说我有这样用过,其实angular的生态系统那么完善,完全可以不用去操作任何的dom元素都可以满足你的提倡开发需求。 那么如果真的需要
本文向大家介绍Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法,包括了Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法的使用技巧和注意事项,需要的朋友参考一下 前言 在用AngularJS期间, 经常用到ng-repeat, 业务中有时需要在异步获取数据并用ng-repeat遍历渲染完页面后执行某个操作,angular本身并没有提供监听ng-repe
问题内容: 我正在一个有几个无法更改的脚本的项目中。这些脚本通过AJAX更新页面。更新完成后,我需要运行一些代码。 XMLHttpRequest完成时是否会触发任何事件?(或任何XMLHttpRequest状态更改?)。 不幸的是,我无法访问用于发出请求的特定XMLHttpRequest对象。 谢谢, 问题答案: 如果没有jQuery,则可以挂钩该方法以在XHR对象被编辑时为每个XHR对象的事件附
问题内容: 我在DOM中有一个Angular模板。当我的控制器从服务中获取新数据时,它将更新$ scope中的模型,然后重新呈现模板。到目前为止一切都很好。 问题是,在模板重新渲染并且在DOM中(在本例中为jQuery插件)之后,我还需要做一些额外的工作。 似乎应该有一个事件要听,例如AfterRender,但我找不到任何此类事件。也许一条指令可以走,但它似乎还为时过早。 这是一个概述我的问题的j
我在DOM中有一个Angular模板。当我的控制器从服务获取新数据时,它会更新$scope中的模型,并重新呈现模板。到目前为止一切都很好。 问题是,在模板被重新渲染并放入DOM(在本例中是一个jQuery插件)后,我还需要做一些额外的工作。 似乎应该有一个事件可以听,比如后浪汉,但我找不到任何这样的东西。也许指令是一条出路,但它似乎也太早了。 这是一个js小提琴概述我的问题:小提琴 - 角度问题