等待angular完成更新DOM

时间:2014-07-16 22:53:13

标签: javascript angularjs dom callback

我需要将bootstrap datepicker附加到我将使用AngularJS生成的输入字段之一。

执行以下操作无效,因为该元素尚不存在:

$(function () {
    $(':input[name=dispense_date]').datepicker();
});

相反,我必须这样做:

$(function () {
    setInterval(function () {
        $(':input[name=dispense_date]').datepicker();
    }, 200);
});

后一版本有效,但效率低下,并不完全是“正确”的方法。角度控制器/模块是否有一种在一切完成后运行回调的方法?

我需要在$ http.get()调用之后运行jquery代码,但只是在.success()调用中添加它将无法解决问题,因为$ apply还没有运行。

1 个答案:

答案 0 :(得分:4)

使用$ timeout:

$timeout(function() {
    $(':input[name=dispense_date]').datepicker();
});

Angular将确保在编译/链接阶段之后甚至在渲染阶段之后执行超时功能。