0

如何知道给定页面上的所有插值和处理何时完成?

            compile: function (tElement, tAttrs) {
                return function (scope, element, attrs) {
                    element.html(tpl);
                    $compile(element.contents())(scope);
                };
            },

这不是同步的。如果有 {{stuff}} 和 ng-repeat="..." 等......当链接函数返回时,它们将不能保证全部完成。

我需要一种方法来了解页面何时呈现并且没有更多指令要处理,以便我可以使用#hashes 导航到页面上通过角度创建的元素。(使用 $anchorScroll)

4

2 回答 2

1

也许试试这个:

$scope.$on('$viewContentLoaded', function() {
  // ....
});
于 2013-11-14T15:53:57.317 回答
0

由于这个非常具体的原因,有一个角度指令;ng披风。

ngCloak 指令用于防止 Angular html 模板在加载应用程序时被浏览器以原始(未编译)形式短暂显示。使用该指令可以避免 html 模板显示引起的不良闪烁效果。

文档@https ://docs.angularjs.org/api/ng/directive/ngCloak

Quora上的类似问题;在 ng-repeat 完成处理之前,如何使用 AngularJS 隐藏 div?@ https://www.quora.com/How-do-I-hide-a-div-with-AngularJS-until-ng-repeat-has-finished-processing

在此处输入图像描述

这是另一种方法,但我更喜欢使用角度指令。

<li ng-repeat="opt in menuItems" my-custom-repeat-listener> </li>

然后在指令上有点像

if(scope.$last) { /*fire event or etc to show the list items*/ }
于 2016-02-27T20:28:47.450 回答