我是AngularJS的新手。需要你帮助的人我错过了什么。我现在只想尝试从SQL Server读取一些数据。谢谢。
products.php 我用来检索数据的代码。
<?php
/* Set Connection Credentials */
$serverName="localhost";
$uid = "sa";
$pwd = "password123";
$connectionInfo = array( "UID"=>$uid,
"PWD"=>$pwd,
"Database"=>"TESTDB",
"CharacterSet"=>"UTF-8");
/* Connect using SQL Server Authentication. */
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
echo "Unable to connect.</br>";
die( print_r( sqlsrv_errors(), true));
}
/* TSQL Query */
$tsql = "SELECT pk_products, prodName, prodDescription FROM dbo.products";
$stmt = sqlsrv_query( $conn, $tsql);
if( $stmt === false ) {
echo "Error in executing query.</br>";
die( print_r( sqlsrv_errors(), true));
}
/* Process results */
$json = array();
do {
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
$json[] = $row;
}
} while ( sqlsrv_next_result($stmt) );
header('Content-Type: application/json');
echo json_encode($json);
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>
controller.js
var myApp = angular.module('myApp', []);
myApp.controller('ProductCtrl', ['$scope', '$http', function($scope, $http) {
$http({
method: 'GET',
url: 'products.php'
}).then(function(success) {
$scope.products = data;
console.log(data);
}, function(error) {
console.log(data);
});
}]);
的index.html
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body ng-app="myApp">
<div ng-controller="ProductCtrl">
<ul>
<li ng-repeat="x in products">
<a href="#">{{x.prodName}}</a>
</li>
</ul>
</div>
</body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.2/angular.min.js"></script>
<script src="controller.js"></script>
</html>
错误
ReferenceError: data is not defined
at http://localhost:2345/ver1/controller.js:10:35
at https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.2/angular.min.js:134:167
at m.$eval (https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.2/angular.min.js:148:47)
at m.$digest (https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.2/angular.min.js:145:92)
at m.$apply (https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.2/angular.min.js:148:341)
at l (https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.2/angular.min.js:101:89)
at XMLHttpRequest.t.onload (https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.2/angular.min.js:106:489) Possibly unhandled rejection: {}
(anonymous) @ angular.min.js:122
答案 0 :(得分:0)
使用success.data
代替data
$http({
method: 'GET',
url: 'products.php'
}).then(function(success) {
$scope.products = success.data;
console.log(success.data);
}, function(error) {
console.log(error.data);
});