为什么在$ http.jsonp(angularjs)中永远不会调用成功函数

时间:2016-05-30 22:56:20

标签: angularjs ngtable

我正在使用ngTable动态显示来自json文件的数据并更新表。但是,我的代码无效。 以下是代码的一些片段:

$http.jsonp("http://127.0.0.1:3000/sampledate.json")
        .success(function(data) {
            //console.log(data);
            $scope.user = data; });

以下是html表(ngTable)的示例:

<div ng-controller="tableController">
        <table ng-table="tableParams" show-filter="true" class="table table-striped" infinite-scroll-distance="3">
            <tr ng-repeat="user in $data">
                <td data-title="'Id'" sortable="'id'">
                    {{user.id}}
                </td>
                <td data-title="'File Name'" sortable="'file_name'" filter="{ 'file_name': 'text' }">
                    {{user.file_name}}
                </td>
                <td data-title="'Type'" sortable="'type'" filter="{ 'type': 'text' }">
                    {{user.type}}
                </td>    
                <td data-title="'File Date'" sortable="'file_date'" filter="{ 'file_date': 'text' }">
                    {{user.file_date}}
                </td>    
                <td data-title="'Hour'" sortable="'hour'" " filter="{ hour: 'number'}">
                    {{user.hour}}
                </td>    
                <td data-title="'Bucket'" sortable="'bucket'">
                    {{user.bucket}}
                </td> </tr></table></div>

人们可以给我一些如何排除故障的想法吗? 或者给我一些关于完成任务的想法。

我的问题不是网络问题。见下文。

请求网址:http://127.0.0.1:3000/sampledate.json 请求方法:GET 状态代码:200 OK(来自缓存) 远程地址:127.0.0.1:3000

3 个答案:

答案 0 :(得分:0)

看起来这是错误的:

<tr ng-repeat="user in $data">

在这种情况下,您需要使用$scope.data = data;代替$scope.user = data;

此外,$data中的tr应为data

最好将其称为$scope.users = data,最后使用ng-repeat="user in users"

答案 1 :(得分:0)

只需添加一个错误函数,然后查看系统抛出的错误。

$http.jsonp("http://127.0.0.1:3000/sampledate.json").success(function(data, status, headers, config) {
    //console.log(data);
    $scope.user = data; 
}).error(function(data, status, headers, config) {
    $scope.error = true;
    //Here, the console.log that you want (with status, headers... your choice)
    console.log(status)
});

但我认为你的问题是关于代码的变量,而不是请愿。

答案 2 :(得分:0)

您可以从jsonp电话中检索单个用户,然后将其存储到$scope.user,但在html中,您可以在$data上调用重复。

如果您的目标是让多个用户接听您的电话,然后循环播放,则必须更改两件事:

首先,将结果放入$ scope中的值:

$scope.users = data;

然后通过更改标记在html中循环显示:

<tr ng-repeat="user in users">

此功能现在可以使用,因为它会循环显示您$scope.users正确呼叫后设置的jsonp