fix(members): add a callback so members modal doesn't popup until after

member is fetched
This commit is contained in:
Tyler Renelle 2014-11-21 08:15:19 -07:00
parent 697694c69d
commit 31fdc866c3
2 changed files with 6 additions and 3 deletions

View file

@ -45,8 +45,9 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Shared', 'Groups', '
} else {
// We need the member information up top here, but then we pass it down to the modal controller
// down below. Better way of handling this?
Members.selectMember(uid);
$rootScope.openModal('member', {controller:'MemberModalCtrl'});
Members.selectMember(uid, function(){
$rootScope.openModal('member', {controller:'MemberModalCtrl'});
});
}
}

View file

@ -57,7 +57,7 @@ angular.module('memberServices', ['ngResource', 'sharedServices']).
* either gets them or fetches if not available
* @param uid
*/
selectMember: function(uid) {
selectMember: function(uid, cb) {
var self = this;
// Fetch from cache if we can. For guild members, only their uname will have been fetched on initial load,
// check if they have full fields (eg, check profile.items and an item inside
@ -67,11 +67,13 @@ angular.module('memberServices', ['ngResource', 'sharedServices']).
if (members[uid] && members[uid].items && members[uid].items.weapon) {
Shared.wrap(members[uid],false);
self.selectedMember = members[uid];
cb();
} else {
Member.get({uid: uid}, function(member){
self.populate(member); // lazy load for later
Shared.wrap(member,false);
self.selectedMember = members[member._id];
cb();
});
}
}