【发布时间】:2017-01-15 10:41:29
【问题描述】:
您好,我对 $.post 调用的响应有疑问。
我会在表格中插入带有角度的数据。日期是 php 调用的响应。我用以下方式调用 php:
function AppCtrl($scope){
$scope.seeTable = function(){
$.post("/testJson.php", function(json){
//setResponse(json);
$scope.contacts = json;
});
$scope.seeThisTable = !$scope.seeThisTable;
};
//Not working
function setResponse(json){
$scope.contacts = json;
}
然后我在表格中插入:
<tbody>
<tr ng-repeat="contact in contacts">
<td> {{contact.name}} </td>
<td> {{contact.phone}} </td>
</tr>
</tbody>
我的php是:
<?php
$array = array(
0 => array('name' => 'Peter',
'phone' => '555-5552'),
1 => array('name' => 'Jhon',
'phone' => '555-1235'),
2 => array('name' => 'Ron',
'phone' => '555-5122'),
3 => array('name' => 'Harry',
'phone' => '555-5514')
);
echo json_encode($array);
?>
但是 $scope.contacts 是空的。问题是提取 $.post() 的响应,但是当我尝试将 json 导出到函数 $.post() 时,它总是空的。我尝试调用另一个函数并在内部传递 json 但不起作用,在函数 setResponse 内部,json 正确但不设置 $scope.contacts,函数结束后 $scope.contacts 为空。
有什么方法可以提取响应?
谢谢!
【问题讨论】:
-
你能为此创建 plunkr 吗?
-
json变量有数据吗?
-
你可以尝试post方法的成功函数,只有在数据来自post之后才会调用它,然后你可以分配$scope.contacts=结果
标签: javascript jquery json