Javascript 等待angular完成对DOM的更新
我需要将引导数据采集器附加到将使用AngularJS生成的输入字段之一 由于元素尚不存在,执行以下操作无效:Javascript 等待angular完成对DOM的更新,javascript,angularjs,dom,callback,Javascript,Angularjs,Dom,Callback,我需要将引导数据采集器附加到将使用AngularJS生成的输入字段之一 由于元素尚不存在,执行以下操作无效: $(function () { $(':input[name=dispense_date]').datepicker(); }); 相反,我必须做: $(function () { setInterval(function () { $(':input[name=dispense_date]').datepicker(); }, 200); })
$(function () {
$(':input[name=dispense_date]').datepicker();
});
相反,我必须做:
$(function () {
setInterval(function () {
$(':input[name=dispense_date]').datepicker();
}, 200);
});
后一个版本可以工作,但效率低下,而且不完全是“正确”的方法。angular控制器/模块是否有在一切完成后运行回调的方法
我需要jquery代码在$http.get()调用后运行,但简单地将其添加到.success()调用中并不能起到作用,因为$apply尚未运行 使用$timeout:
$timeout(function() {
$(':input[name=dispense_date]').datepicker();
});
Angular将确保在编译/链接阶段之后,甚至在渲染阶段之后执行超时函数。pixelbits,是否有在运行$http.success()之后运行的$timeout版本?@ramin-不,我很确定没有。这就是说,$timeout返回一个承诺,因此您可以轻松地将$timeout链接到$http调用(它也返回一个承诺)之后运行。您可以将$timeout调用放入成功处理程序中—它可能会触发另一个摘要,但这是angular工作方式的核心。您可能不需要两个链式承诺—您将在成功处理程序中操作模型,然后您可能希望在成功处理程序中调用$timeout来重新初始化datepickerSuppose I change a data(在视图中是绑定的)。是否可以等待angular渲染,然后再执行某些操作?不要重新发明轮子。是的,但我不喜欢他们的约会挑肥拣瘦的样子。