仅在数据是DOM中的渲染器之后才在指令中调用jquery插件

我想在angular指令中初始化一个jquery插件,但只有在返回服务数据并在DOM中使用第一个渲染器之后。 我似乎可以在angular指令中弄清楚如何做到这一点。 到目前为止我有这个代码,但似乎我在服务数据到达之后调用插件,但在它是DOM上的渲染器之前…任何提示?

myApp.directive('myDirective', function () { return { restrict: 'A', link: function ($scope, element, attrs) { $scope.$watch("data.length", function( newValue, oldValue ) { if ( newValue === oldValue ) { console.log( "Should return..." ); return; } $(element).elastislide(); }); } }; 

});

===编辑====如果我使用setTimeout函数推迟执行它是否有效,这是正确的方法吗?

  myApp.directive('myDirective', function () { return { restrict: 'A', link: function ($scope, element, attrs) { $scope.$watch("data.length", function( newValue, oldValue ) { if ( newValue === oldValue ) { console.log( "Should return..." ); return; } postpone = $timeout(function() { $('#carousel').elastislide(); }, 100); }); } }; 

});

如果您需要首先渲染 DOM,请使用$ timeout 。

如果您只需要更新DOM(但尚未渲染),请使用$ evalAsync 。 首先尝试这个,因为它可以防止闪烁。