在我的Angular控制器中,我有一个REST服务的http调用,它返回数据库中的数据。该数据显示在局部视图的表格中。
随机地发现html视图的渲染在获取数据回调之前完成,所以我看到一个void表。
这里是控制器中的代码(我使用某些业务逻辑的服务并实现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 :(得分:0)
我建议使用Angular' s-cloak。它是一个指令,用于防止在您的角度应用程序加载完成之前显示html。在这里查看文档:{{3}}