如何从角加载数据?

时间:2016-06-13 13:27:22

标签: javascript angularjs

我是处理角度js的新手,有时在firefox上加载数据它显示变量名称,在几节后它以正确的方式显示该变量的内容。如何加载此数据或如何应用加载程序来加载数据。您可以在下面的屏幕截图中查看。

enter image description here

片刻之后,它会显示正确的内容 enter image description here

2 个答案:

答案 0 :(得分:2)

要在加载数据时显示加载屏幕,您可以编写自定义指令。

//指令

app.directive('loading', ['$http', function ($http) {
    return {
        restrict: 'A',
        link: function (scope, elm, attrs) {
            scope.isLoading = function () {
                return $http.pendingRequests.length > 0;
            };

            scope.$watch(scope.isLoading, function (v) {
                if (v) {
                    elm.show();
                } else {
                    elm.hide();
                }
            });
        }
    };
}]);

像这样使用

<body>
<!-- apply style/css to below div to cover entire page/element on which you want to show loader -->
<div loading>
<!-- add an image tag here with src as any loading gif image -->
</div>
</body>

答案 1 :(得分:1)

使用ng-cloak。就是这样:

CSS:

[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
  display: none !important;
}

HTML:

<body ng-cloak> ... </body>

会起作用,但它会隐藏整个身体。 https://docs.angularjs.org/api/ng/directive/ngCloak

  

该指令可以应用于元素,但首选用法是将多个ngCloak指令应用于页面的一小部分,以允许逐步呈现浏览器视图。

因此,将ng-cloak应用于特定元素会更好:

<div ng-cloak> ... </div>
<div ng-cloak> ... </div>

Here很好地描述了如何添加加载信息。