javascript - Angular 运行 jquery $(document).ready

标签 javascript jquery angularjs

我有一个 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/

相关文章:

javascript - 如何使用 javascript 将大量选择选项移动到另一个选择控件?

jquery - 您可以使用 bassassistance 的 jquery 验证插件单独验证字段集吗?

jQuery 切换元素位置

javascript - 如何使用 Angular.js 和 Javascript 删除浏览器通过“记住我”选项保存的密码

javascript - 除了 ng-view 页面加载之外

javascript - 基于 Angular 翻译的自定义过滤器

javascript - 将 props 传递给服务器中 React 路由器的处理程序

php - 拥有一个动态页面或根据下拉选项重定向的多个页面更好吗?

javascript - 使用正则表达式获取单词后的名称

javascript - .CSV 文件数组到 CSS 元素