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