2017-07-25 41 views
3

我有一个HTML页面上的数据存储在数据库中的表。我希望只有在收到数据后才能加载表格或整个页面。我可以这样做吗?AngularJS从数据库获取响应后如何加载HTML页面?

AngularJS代码:

angular.module("app", []).controller("controller", function($scope, $http) {   
$http({ 
    method: 'POST', 
    url: 'updateCoins.php', 
    data: {get: 1}, 
}).then(function(response){ 
$scope.db = response.data; 
}); 
}); 

表得到填补这样的:

<tr> 
    <td>{{db[0]['percent']}}%</td> 
</tr> 
+0

这是不是以某种方式工作?AJAX调用是否成功?什么在响应中? – David

+0

只需阅读有关ngIf ngHide ngShow,太基本了 –

回答

2

通常你会在你的路由器上使用这个解决方案。你也可以做这样的事情:

angular.module( “应用程序”,[])控制器( “控制器”,函数($范围,$ HTTP){

$scope.dataLoaded = false   
$http({ 
    method: 'POST', 
    url: 'updateCoins.php', 
    data: {get: 1}, 
}).then(function(response){ 
$scope.db = response.data; 
$scope.dataLoaded = true 
}); 
}); 

然后在你的HTML在加载你的控制器的最外面的元素上使用ng-if =“dataLoaded”

+0

如果我把'ng-if =“dataLoaded”'放在我用户ng-controller(整个页面为空)的元素中,它不起作用,但如果我直接为元素流动它。 –

2

,如果你不使用ngRoute或ui.router与做出决议最简单的方法是有一个变量之前设置。例如:

angular.module("app", []).controller("controller", function($scope, $http) {   
    $scope.hasCompleted = false; 
    $http({ 
     method: 'POST', 
     url: 'updateCoins.php', 
     data: {get: 1}, 
    }).then(function(response){ 
     $scope.db = response.data; 
     $scope.hasCompleted = true; 
    }); 
}); 

<tr> 
    <td ng-show="hasCompleted">{{db[0]['percent']}}%</td> 
</tr> 
相关问题