2017-07-25 46 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> 
相關問題