Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在angularjs中显示json数据_Json_Angularjs - Fatal编程技术网

在angularjs中显示json数据

在angularjs中显示json数据,json,angularjs,Json,Angularjs,我想在视图中显示从服务调用返回的数据: 服务代码: 服务返回的JSON数据 控制器代码 看法 我想在视图中显示服务中返回的数据,但它似乎不起作用。请帮助尝试将data.record分配给$scope.exchangeRates而不是data。。。由于数据不包含记录数组。。。它保存记录,然后保存数组首先,您的服务函数始终返回未定义的: var rates = ..., return homeRates; 应该是 return rates; 第二,一旦修复,服务就不会返回数据。它返回一个承诺,您

我想在视图中显示从服务调用返回的数据:

服务代码:

服务返回的JSON数据

控制器代码

看法


我想在视图中显示服务中返回的数据,但它似乎不起作用。请帮助

尝试将data.record分配给$scope.exchangeRates而不是data。。。由于数据不包含记录数组。。。它保存记录,然后保存数组

首先,您的服务函数始终返回未定义的:

var rates = ...,
return homeRates;
应该是

return rates;
第二,一旦修复,服务就不会返回数据。它返回一个承诺,您不能重复承诺。控制器中需要的是:

HomeExchangeList.getHomeExchange().then(function(data) {
    $scope.rates = data.record;
}
对$scope.$on的调用没有任何意义$作用域。$on用于侦听事件。不从承诺中获取数据

最后,您的视图必须在这些rete上迭代,而不是在exchangeRates上迭代:

ng-repeat="rate in rates">
首先,所有调用都返回一个值,而不是请求的结果。您的服务应该只返回$http调用的结果,并且您的控制器需要附加一个.success处理程序来接收数据并将其设置在控制器的作用域中

.service('HomeExchangeList', function ($rootScope, $http, $log) {
    this.getHomeExchange = function() {
        var rates = $http({
            method: 'GET',
            url: 'http://localhost:8080/feeds/homerates_android.php'
        }).success(function (data) {
            $log.log(data);
            // removed your return data; it doesn't do anything, and this success is only added to log the result. if you don't need the log other than for debugging, get rid of this success handler too.   
        });

        return rates;
    };
})


function HomeCtrl($scope, Page, $location, HomeExchangeList) {
    HomeExchangeList.getHomeExchange().success(function(data) {
        $scope.exchangeRates = data;
    });
}

其次,JSON的根不是数组,因此不能仅通过exchangeRates枚举。也许你的意思是兑换率。记录。

谢谢。。这在一定程度上起作用,但ng repeat中使用的结果exchangeRates.record=exchangeRates.record中的汇率仅显示一条记录。我有任务吗???@munya.nyika请看我在这里放的演示,并将scripts.js中的服务和控制器声明与您的进行比较,以及将我索引中的HTML与您的进行比较。它的工作原理如我所述,一旦您将中继器更改为使用exchangeRates.record,您也可以只分配$scope.exchangeRates=demo.record;在你的控制器里。
return rates;
HomeExchangeList.getHomeExchange().then(function(data) {
    $scope.rates = data.record;
}
ng-repeat="rate in rates">
.service('HomeExchangeList', function ($rootScope, $http, $log) {
    this.getHomeExchange = function() {
        var rates = $http({
            method: 'GET',
            url: 'http://localhost:8080/feeds/homerates_android.php'
        }).success(function (data) {
            $log.log(data);
            // removed your return data; it doesn't do anything, and this success is only added to log the result. if you don't need the log other than for debugging, get rid of this success handler too.   
        });

        return rates;
    };
})


function HomeCtrl($scope, Page, $location, HomeExchangeList) {
    HomeExchangeList.getHomeExchange().success(function(data) {
        $scope.exchangeRates = data;
    });
}