[英]accessing Json key-value pair for angularjs controller using services
我一直在尝试将我的服务中的数据用于我的angularjs控制器中的图表。我已经在我正在控制器中使用的service.js中提供了一项服务。我得到的只是对象数组,但是当我尝试访问值时在对象数组中,它会为我使用的每种方法引发错误。下面是我在做什么
My Service
var demoService= angular.module('demoService',[])
.service('myService',function($http,$q){
var deferred = $q.defer();
$http.get('http://enlytica.com/RSLivee/rest/census').then(function(data)
{
deferred.resolve(data);
});
this.getPlayers=function()
{
return deferred.promise;
}
})
我的控制器
angular.module("app.controllers", [])
.controller("gaugeCtrl", ["$scope","config","myService",
function ($scope,config,myService) {
var promise=myService.getPlayers();
promise.then(function(data)
{
$scope.players=data.data;
//console.log($scope.players.Tweets);
($scope.players.Tweets).each(function(index, element) {
console.log(element.FAVOURITE_COUNT);
});
});
return $scope.gaugeHome = {
gaugeData: {
maxValue: 9000,
animationSpeed: 100,
val: 1000
},
gaugeOptions: {
lines: 12,
angle: 0,
lineWidth: 0.47,
pointer: {
length: 0.6,
strokeWidth: 0.03,
color: "#555555"
},
limitMax: "false",
colorStart: config.secondary_color,
colorStop: config.secondary_color,
strokeColor: "#F5F5F5",
generateGradient: !0,
percentColors: [
[0, config.secondary_color],
[1, config.secondary_color]
]
}
}
我还在我的app.js中包含了服务模块:
var app = angular.module("app",["demoService"])
我如何正确地为我的gaugectrl访问特定值。是否以错误的方式访问它?
($scope.players.Tweets).each(function(index, element) {
console.log(element.FAVOURITE_COUNT);
提前致谢
看起来一切正常。 似乎您正在尝试错误地访问数组中的对象。
我认为您想使用Array.forEach
someArray.forEach(function(element, index, array) {
// Do stuff here.
});
我对您的代码做了简化:
var app = angular.module('app', []); app.controller('myController', function($scope, $q, $http) { var deferred = $q.defer(); $http.get('http://enlytica.com/RSLivee/rest/census').then(function(data) { deferred.resolve(data); }); var promise = deferred.promise; promise.then(function(data) { var tweets = []; var total = 0; $scope.players = data.data; ($scope.players.Tweets).forEach(function(element) { console.log(element); tweets.push({FAVOURITE_COUNT: element. FAVOURITE_COUNT, TWEET_ID: element.TWEET_ID}); total += element.FAVOURITE_COUNT; }); $scope.something.tweets = JSON.stringify(tweets, null, 2); $scope.something.favoriteTotal = total; }); $scope.something = {}; });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script> <div ng-app='app' ng-controller='myController'> {{ something.favoriteTotal }} <pre>{{ something.tweets }}</pre> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.