ReferenceError:未定义数据

时间:2017-03-01 03:03:37

标签: php angularjs

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

1 个答案:

答案 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);
});