我有一个 SPA,它使用 Angular http get 从弹性中检索潜在的大量数据,并将其呈现到页面上的 Pane 中。我遇到的问题是,如果在调用 jquery $(document).ready 函数之前没有收到来自 http get 的完整响应,我有一些使用 jquery 的奇特滚动条,这些滚动条将无法正常工作。对于较小的数据集,没有问题,只是较大的数据集。
我找到了一个部分解决方案,即向 jquery $(document).ready 函数引入 setTimeout,但这不是很优雅,除非需要,否则我不想总是有延迟。
一旦我收到所有的http响应,有没有办法从 Angular 调用jquery $(document).ready?或者还有另一个我可以调用的 Angular 函数吗?
最佳答案
看来你的问题是,你想知道 ng-repeat 何时完成渲染 DOM。我认为这个post可以帮你。
它表示创建一个指令,该指令将在 DOM 就绪时调用函数:
var module = angular.module('testApp', [])
.directive('onFinishRender', function ($timeout) {
return {
restrict: 'A',
link: function (scope, element, attr) {
if (scope.$last === true) {
$timeout(function () {
scope.$emit(attr.onFinishRender);
});
}
}
}
});
html 看起来像这样:
<div ng-repeat="item in items" on-finish-render="ngRepeatFinished">
<div>{{item.name}}}<div>
</div>
关于javascript - Angular 运行 jquery $(document).ready,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38460587/