在AngularJS从数据库获得响应后如何加载HTML页面?

时间:2017-07-25 18:47:11

标签: javascript html angularjs http

我在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>

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:2)

一般情况下,您可以使用路由器解析此问题。你也可以这样做:

angular.module(&#34; app&#34;,[])。控制器(&#34;控制器&#34;,功能($ scope,$ 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 =&#34; dataLoaded&#34;