使用AngularJS的Ajax调用
使用AngularJS的Ajax调用,angularjs,Angularjs,我有一个PHP服务器页面,返回JSON格式的数据,如下所示: <?php $data = array( (object)array( 'title' => 'myfirstvalue', 'value' => 'myfirsttext', ), (object)array( 'title' => 'mysecondvalue', 'value' => 'mysecondtext
我有一个PHP服务器页面,返回JSON格式的数据,如下所示:
<?php
$data = array(
(object)array(
'title' => 'myfirstvalue',
'value' => 'myfirsttext',
),
(object)array(
'title' => 'mysecondvalue',
'value' => 'mysecondtext',
),
);
$json = json_encode($data);
echo $json;
?>
现在我需要使用AngularJS显示JSON标题属性。摘自教程,我改编了以下代码:
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular.min.js"></script>
</head>
<body ng-app="myapp">
<div ng-controller="MyController" >
<button ng-click="myData.doClick(item, $event)">Send AJAX Request</button>
<br/>
Data from server: {{myData.fromServer}}
</div>
<script>
angular.module("myapp", [])
.controller("MyController", function($scope, $http) {
$scope.myData = {};
$scope.myData.doClick = function(item, event) {
var responsePromise = $http.get("http://localhost/myfunction.php");
responsePromise.success(function(data, status, headers, config) {
$scope.myData.fromServer = data.title;
});
responsePromise.error(function(data, status, headers, config) {
alert("AJAX failed!");
});
}
} );
</script>
</body>
</html>
发送AJAX请求
来自服务器的数据:{{myData.fromServer}
angular.module(“myapp”,[])
.controller(“MyController”,函数($scope,$http){
$scope.myData={};
$scope.myData.doClick=函数(项、事件){
var responsePromise=$http.get(“http://localhost/myfunction.php");
成功(函数(数据、状态、标题、配置){
$scope.myData.fromServer=data.title;
});
错误(函数(数据、状态、标题、配置){
警报(“AJAX失败!”);
});
}
} );
但是,当我单击按钮时,没有显示任何内容。你知道这段代码哪里出了问题吗?
谢谢 线
$scope.myData.fromServer = data.title;
这不好。一般来说是的,但在这些代码中不是。为什么?返回PHP代码:
array(
[0] => array(
'title' => ...,
'value' => ....
),
[1] => array(
'title' => ...,
'value' => ....
)
);
你没有关键的“标题”。您应该使用数据[0]。标题来显示结果(键“0”)
在这种情况下,我更喜欢使用下划线JS(barrelandeJS.org)。方法(list,propertyName)对我来说似乎很好。在这里阅读更多信息-如果您将console.log(data)
放入成功回调中,它是否显示收到了数据?