diff --git a/public/js/controllers/headerCtrl.js b/public/js/controllers/headerCtrl.js index 37dbead9fb..65da48b89e 100644 --- a/public/js/controllers/headerCtrl.js +++ b/public/js/controllers/headerCtrl.js @@ -2,9 +2,10 @@ habitrpg.controller("HeaderCtrl", ['$scope', 'Groups', 'User', function($scope, Groups, User) { - $scope.party = Groups.party(); - $scope.partyMinusSelf = _.filter($scope.party, function(member){ - return member._id !== User.user._id; + $scope.party = Groups.party(function(){ + $scope.partyMinusSelf = _.filter($scope.party.members, function(member){ + return member._id !== User.user._id; + }); }); } ]); diff --git a/public/js/services/groupServices.js b/public/js/services/groupServices.js index 9c470f777f..bce061f374 100644 --- a/public/js/services/groupServices.js +++ b/public/js/services/groupServices.js @@ -22,12 +22,10 @@ angular.module('groupServices', ['ngResource']). // Defer loading everything until they're requested var party, myGuilds, publicGuilds, tavern; - // But we don't defer triggering Party, since we always need it for the header if nothing else - party = Group.get({gid: 'party'}); - return { - party: function(){ - return party; + party: function(cb){ + if (!party) return (party = Group.get({gid: 'party'}, cb)); + return (cb) ? cb(party) : party; }, publicGuilds: function(){ //TODO combine these as {type:'guilds,public'} and create a $filter() to separate them diff --git a/views/shared/header/header.jade b/views/shared/header/header.jade index 68f71e2d6e..28a32bee52 100644 --- a/views/shared/header/header.jade +++ b/views/shared/header/header.jade @@ -27,7 +27,7 @@ i.icon-signal // party span(ng-controller='PartyCtrl') - .herobox-wrap(ng-repeat='profile in party.members | filter:removeSelf') + .herobox-wrap(ng-repeat='profile in partyMinusSelf') include avatar .NPC-Bailey-Head(ng-show='user.flags.newStuff', tooltip='Psst', tooltip-placement='top', ng-click='modals.newStuff=true')