1

我正在调用 angularJS 获取调用并解析响应并在 UI 中显示响应,但我看到 UI 上有轻微的延迟,有没有办法解决这个问题:

这是我的代码:

controller.js:


    function controller($scope, empDetails) {
        var empName;
        empDetails.getEmpDetails().then(function successCallback(response) {
            empName= response.data.name;
            if (empName) {
                $scope.name= empName;
            }
        });  

    angular.module('abc')
        .controller('controller', controller);
})();

service.js:

(function () {
    "use strict";
    var empDetails= function ($http) {
        var factory = {};
        factory.getEmpDetails = function () {
            return $http({
                method: 'GET',
                url: '/someurl'
            }).then(function (data) {
                return data;
            })
        }
        return factory;
    };
    empDetails.inject = ['$http'];
    angular.module('abc').service('empDetails', empDetails);
}())

谢谢

4

1 回答 1

0

显然,由于您正在调用 API,因此将数据加载到屏幕上需要时间。

但是您可以通过以下方式实现这一目标,

  1. 解决您的路线。//一个resolve包含一个或多个promise,必须在路由改变之前成功解决。这意味着您可以在显示视图之前等待数据可用。
  2. 仅获取前端必需的那些字段。//这将使轻量级API。

以下是使用 resolve in 的链接routeProvider/stateProvider

https://docs.angularjs.org/api/ngRoute/provider/$routeProvider https://odetocode.com/blogs/scott/archive/2014/05/20/using-resolve-in-angularjs-routes.aspx

于 2018-01-02T08:07:39.093 回答