我试图使用AngularJS和使用PHP的Ajax调用从数据库中读取数据。 我的目标是创建一个可预编译的表单,该表单已预先加载数据。 数据按计划完美加载,但加载了一些恼人的延迟(~1s)。 我不确定是什么导致视图在这样的延迟中从数据库加载数据,因此我想消除任何编码错误的可能性。也许我的代码没问题,但问题是我使用的本地服务器? 它与$ http.get有什么关系吗?
现在,我正在做一个“加载”技巧(使用ng-show),只有在数据完全加载时才加载表单输入。显然我宁愿避免它。
任何建议都将受到赞赏。
这是我的控制者:
app.controller('mainController', ['$scope', '$http',
function ($scope,$http){
getMyData();
$scope.saveBanner = function(){
$http.post("includes/updateBanner.php",{"clickURL":$scope.clickURL,"priceColor":$scope.price_color_picker,"titleColor" : $scope.title_color_picker,"logoURL":$scope.logoURL}).success(function(data){
getMyData();
});
};
function getMyData(){
$http.get("includes/getDetails.php").success(function(data){
$scope.price_color_picker = data[0].priceColor;
$scope.title_color_picker = data[0].titleColor;
$scope.clickURL = data[0].clickUrl;
$scope.logoURL = data[0].logoUrl;
$scope.loaded = "true";
});
};
}]);
这是将JSON中的数据返回到角度
的php文件<?php
/*
* includes/getDetails.php
*
* simple db handling file. returns db data using JSON format
*
*/
include("../includes/constants.php");
require_once '../classes/db.php'; // The DB class
$query="SELECT * FROM bannerData";
$dbObj = new db;
$dbObj -> db_connect();
$result = $dbObj->db_query($query);
$arr = array();
if($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$arr[] = $row;
}
}
$dbObj->db_disconnect();
# JSON-encode the response
echo json_encode($arr);
?>