我的控制器从两个外部JSON文件中获取数据,对其进行过滤,然后在视图上进行渲染。但是整个操作需要一些时间(大约30毫秒)并且首先加载视图。所以数据不能被HTML代码找到。AngularJS延迟视图显示
如何延迟加载我的视图以便首先从控制器加载数据?或者也许有另一种解决方案?如果您使用多个HTTP请求上的$http
成功
$scope.ratePlansRelated = [];
$http.get('rooms.json').then(function(res){
$scope.rooms = res.data;
});
$http.get('ratePlans.json').then(function(res){
$scope.ratePlans = res.data;
});
// delay calling that function in order to load data from json first
setTimeout(assignRatePlans,25);
function assignRatePlans()
{
//filter data and assing it to $scope.ratePlansRelated here
}
使用像'$ scope.dataHasLoaded = FALSE '初始化隐藏你的视图,然后当异步操作完成与'ng-if'一起设置为'true'时 –
在你的情况下,我认为更好的方法是使用路由的解析对象来加载异步数据,所以当控制器实例化后,您的数据将可用。告诉我,如果你正在使用ui路由器或简单的ngRoute,我可以告诉你和例子。 –