Sample using AngularJS to retrieve WoW information.

armory.js 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. angular.module('WowArmory', ['ngResource']);
  2. window.WowArmory = {};
  3. window.WowArmory.counter = 0;
  4. // This was done because I don't think I can use "callback: 'JSON_CALLBACK'" and
  5. // I didn't want to hand-jam it everytime.
  6. window.WowArmory.NewCallback = function(id) {
  7. if (id == undefined) {
  8. id = window.WowArmory.counter++;
  9. }
  10. return 'angular.callbacks._' + id;
  11. };
  12. window.WowArmory.ArmoryController = function($scope, $resource) {
  13. // Some bindable values.
  14. $scope.realm = { name: '', slug: '' };
  15. $scope.guild = '';
  16. // Resource for the realms.
  17. $scope.apiRealms = $resource('//:server/api/wow/realm/status',
  18. { server: 'us.battle.net', jsonp: window.WowArmory.NewCallback() },
  19. { get: { method: 'JSONP' }});
  20. $scope.realms = $scope.apiRealms.get();
  21. // Handle the members and its resource(s).
  22. $scope.members = [];
  23. $scope.fetchMembers = function() {
  24. if ($scope.realm.slug.length > 0 && $scope.guild.length > 0) {
  25. // Resource for the guild members.
  26. $scope.apiMembers = $resource('//:server/api/wow/guild/:realm/:guild',
  27. { server: 'us.battle.net', realm: $scope.realm.slug, guild: $scope.guild, fields: 'members', jsonp: window.WowArmory.NewCallback() },
  28. { get: { method: 'JSONP' }});
  29. $scope.members = $scope.apiMembers.get();
  30. }
  31. };
  32. };