2016-09-16 54 views
0

在我的Angular控制器中,我有一个到REST服务的http调用,该服务返回数据库中的数据。这些数据以局部视图的形式显示在表格中。Angular 1:在http调用后推迟html渲染

它发生随机的HTML视图呈现之前完成与数据的回调,所以我看到一个无效的表。

在这里,在控制器(我用的服务,为一些业务逻辑,并执行HTTP调用)的代码:

commonServices.find(vm.modelUri, null, vm.filter, function (err, msg, data) { 

      if (err || !data.length) { 
       $scope.noResults = true; 
       return; 
      } 

      $scope.docs = data; //docs is bind in the view 
      return; 
     }); 

这里HTTP调用服务:

function _commonServices(config, $http, $rootScope, $cookies) { 
     return { 
      find: function _find(modelUri, id, filter, callback) { 
        var url = config.servicesUri + '/' + modelUri; 

        if (id) { 
         url += '/' + id; 
        } 


        if (filter) { 
        if (typeof filter !== 'string') { 
         filter = JSON.stringify(filter); 
        } 

        url += '?filter=' + filter; 
        if (document.cookie) { 
         url += '&' + accessToken; 
        } 
        } else { 
        if (document.cookie) { 
         url += '?' + accessToken; 
        } 
        } 

        $http.get(url) 
        .then(function (data) { 
        //success 
        return callback(null, null, data.data); 
        }, 
        function (data) { 
         //error 
         var err = true; 
        return callback(err, data.data.error.message); 
        }); 
      } 
     } 

}

查找服务用于其他控制器,它看起来很好。我会知道是否有可能推迟html表格的呈现,直到数据准备好显示。

回答

0

我会建议使用Angular的ng-cloak。这是一个指令,防止在您的角度应用加载完成之前显示html。看看这里的文档:ng-cloak

+0

它似乎不适合我 –