Right so I'm fairly new to angular and really enjoying the experience and
I'm slowly but successfully running through a few gotchas that keep
cropping up, however this one has be stumped.
I'm loading a version of the Jquery Vector map and everything is working a
treat. I'm creating the empty object and populating it from my datasource
in a format that the map can use to colour code but here is where the
problem crops up.
When the map is instantiated, it gets the contents of the object
'ratingobj' however the resource hasn't populated the object by the time
its rendered. I can see this in the console log as ratingobj is always
empty.
I understand the concept that the resource is a promise and when the data
is retrieved it will be populated however what I can't work out is how to
get the resource to resolve the resource and get the data prior to the map
being loaded!
Please help, any pointers would be great!
Thanks
Here is my resource query in my services:
.factory('CountryData', ['$resource',
function($resource){
return $resource('http://mydatasource/datafeed', {}, {
query: {
method:'GET',
isArray:false,
}
})
}])
Here's the controller
.controller('jqvmapCtrl', ['$scope' ,'CountryData', 'greeting',function($scope,
CountryData, greeting) {
var ratingobj = {};
$scope.rating = CountryData.query(function (response){
angular.forEach(response.record, function(value,key) {
ratingobj[value.countryISO] = value.countryRating;
});
});
console.log(ratingobj);
$scope.worldMap = {
map: 'world_en',
backgroundColor: null,
color: '#ffffff',
hoverOpacity: 0,
hoverColor: '#C2C2C2',
selectedColor: '#666666',
enableZoom: true,
showTooltip: true,
values: ratingobj,
scaleColors: ['#C4FFFF', '#07C0BB'],
normalizeFunction: 'polynomial',
};
}]);
This is my main app file with the route
.when('/countries/map', {
templateUrl: 'views/countries/map.html',
controller: 'jqvmapCtrl',
})
--
You received this message because you are subscribed to the Google Groups
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.