У меня есть несколько отдыха услуг, который выглядит, как этопараметров ngResource по умолчанию из обещания
/user/:userId/resource/:resourceId
Большая часть времени пользователь хочет получить свои собственные ресурсы (хотя иногда он хочет получить ресурс пыльников пользователя) поэтому я хочу параметр по умолчанию, чтобы быть текущим Id пользователя, но я не могу сохранить UserId на rootscope/услугу, потому что, если пользователь обновляет браузер это уже не будет, так что я хочу сделать что-то вроде этого:
$resource('/user/:userId/resource/:resourceId', { userId: getUserId, resourceId: '@id' })
в проблема в том, что getUserId()
возвращает обещание:
function getUserId() {
if (!$rootScope['user']) {
$rootScope['user'] = UserService.get({ userId: 'current' })
}
return $rootScope['user'].$promise.then(function (user) {
return user.id;
}
}
как я могу заставить его работать на все услуги (как сейчас я просто всегда цепочки каждый сервис ресурсов после USERID добытчика ... есть лучший способ?
Лично я хранил в сеансе нечувствительные данные, подобные этому. Таким образом, он легко доступен и доступен до тех пор, пока браузер не будет закрыт или пользователь не выйдет из системы. Это гораздо проще, чем пытаться настроить службы для обработки чего-то подобного. – buzzsaw
Если бы это был обычный вызов $ http, это было бы довольно легко, с ресурсом его больше работа из-за поведения ресурса. Я могу помочь вам, если вы измените этот ресурс $ на обычный вызов $ http, и вы сможете его адаптировать оттуда. –
@BenjaminGruenbaum Я знаю, что можно создать такой запрос вручную, но у меня много приятных apis, и библиотека ngResource мне очень хорошо помогает. – RonZ