Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 等待angular完成对DOM的更新_Javascript_Angularjs_Dom_Callback - Fatal编程技术网

Javascript 等待angular完成对DOM的更新

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); })

我需要将引导数据采集器附加到将使用AngularJS生成的输入字段之一

由于元素尚不存在,执行以下操作无效:

$(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渲染,然后再执行某些操作?不要重新发明轮子。是的,但我不喜欢他们的约会挑肥拣瘦的样子。