为什么数据没有显示出来,以$ http.get在AngularJS?
问题描述:
我试图创建使用angularJS
数据库的连接。我使用$http.get
用于与PHP服务器
控制器
var oke = angular.module('secondApp',[]);
oke.controller('dataAdmin',function(){
return{
controller : function($scope,$http){
$scope.displayData = function(){
$http.get('db.php').success(function(hasil){
$scope.datas=hasil;
});
console.log($scope.datas);
}
}
};
});
HTML
<div ng-controller="dataAdmin" ng-init="displayData()" ng-app="secondApp">
<input type="text" ng-model="hasil" placeholder="Search" style="margin-left:2%;margin-bottom:5px;"/>
<ul>
<li ng-repeat="nt in datas | filter:hasil | orderBy:'username'">
Username : {{nt.username}} | Password : {{nt.password}}
</li>
</ul>
</div>
答
控制器代码需要一些改动:
var oke = angular.module('secondApp',[]);
oke.controller('dataAdmin', ̶f̶u̶n̶c̶t̶i̶o̶n̶(̶)̶{̶
̶r̶e̶t̶u̶r̶n̶{̶
̶c̶o̶n̶t̶r̶o̶l̶l̶e̶r̶ ̶:̶ function($scope,$http){
$scope.displayData = function(){
$http.get('db.php'). ̶s̶u̶c̶c̶e̶s̶s̶ then(function(hasil){
$scope.datas= ̶h̶a̶s̶i̶l̶;̶ hasil.data;
console.log($scope.datas);
});
̶c̶o̶n̶s̶o̶l̶e̶.̶l̶o̶g̶(̶$̶s̶c̶o̶p̶e̶.̶d̶a̶t̶a̶s̶)̶;̶
};
̶}̶
̶}̶;̶
});
的console.log
需要是.then
方法内。
答
访问连接您的响应的数据
$http.get('db.php').then(function(hasil){
$scope.datas=hasil.data;
});
答
ŧ RY这样的:
$http.get('db.php').then(function(result){
$scope.datas = result.data;
}, function(err){
console.log(err);
});
答
你console.log($scope.datas)
会显示未定义的,因为它会得到响应之前运行,
写在你的成功调用此代码返回。它将显示值。
答
您需要访问数据你是响应内部得到。
$ scope.datas = hasil.data;
你这是在控制台中得到些什么? –